Skip to content
Snippets Groups Projects
Commit 05eae236 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6335 apply code review changes

parent 80697a02
No related branches found
No related tags found
No related merge requests found
......@@ -26,6 +26,8 @@ package de.ozgcloud.alfa.common.command;
import java.time.ZonedDateTime;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import de.ozgcloud.alfa.common.LinkedUserProfileResource;
......@@ -76,8 +78,8 @@ public class Command {
}
@JsonIgnore
public boolean isDoneSuccessfully() {
return status == CommandStatus.FINISHED;
public boolean isFinishedSuccessfully() {
return status == CommandStatus.FINISHED && StringUtils.isEmpty(errorMessage);
}
@JsonIgnore
......
......@@ -53,7 +53,7 @@ public class WiedervorlageCommandController {
@PathVariable long wiedervorlageVersion) {
var wiedervorlage = service.getById(wiedervorlageId);
var createdCommand = createCommand(wiedervorlage, command);
var doneCommand = service.updateNextFristOnSuccessfullyDoneCommand(createdCommand, wiedervorlage.getVorgangId());
var doneCommand = service.updateNextFrist(createdCommand, wiedervorlage.getVorgangId());
return ResponseEntity.created(linkTo(CommandController.class).slash(doneCommand.getId()).toUri()).build();
}
......@@ -96,7 +96,7 @@ public class WiedervorlageCommandController {
@PostMapping
public ResponseEntity<Void> createWiedervorlage(@RequestBody CreateCommand command, @PathVariable String vorgangId) {
var createdCommand = service.createWiedervorlage((Wiedervorlage) command.getBody(), vorgangId);
var doneCommand = service.updateNextFristOnSuccessfullyDoneCommand(createdCommand, createdCommand.getVorgangId());
var doneCommand = service.updateNextFrist(createdCommand, createdCommand.getVorgangId());
return ResponseEntity.created(linkTo(CommandController.class).slash(doneCommand.getId()).toUri()).build();
}
......
......@@ -73,20 +73,20 @@ class WiedervorlageService {
return remoteService.getById(wiedervorlageId);
}
public void updateNextFrist(String vorgangId) {
var allWiedervorlagen = findByVorgangId(vorgangId);
remoteService.updateNextFrist(vorgangId, calculateNextFrist(allWiedervorlagen));
}
Command updateNextFristOnSuccessfullyDoneCommand(Command command, String vorgangId) {
public Command updateNextFrist(Command command, String vorgangId) {
var doneCommand = commandService.waitUntilDone(command);
if (doneCommand.isDoneSuccessfully()) {
updateNextFrist(vorgangId);
if (doneCommand.isFinishedSuccessfully()) {
doUpdateNextFrist(vorgangId);
}
return doneCommand;
}
void doUpdateNextFrist(String vorgangId) {
var allWiedervorlagen = findByVorgangId(vorgangId);
remoteService.updateNextFrist(vorgangId, calculateNextFrist(allWiedervorlagen));
}
Optional<LocalDate> calculateNextFrist(Stream<Wiedervorlage> wiedervorlagen) {
return wiedervorlagen
.filter(Objects::nonNull)
......
......@@ -11,27 +11,39 @@ import org.junit.jupiter.params.provider.EnumSource;
import org.junit.jupiter.params.provider.EnumSource.Mode;
import org.mockito.Mock;
import com.thedeanda.lorem.LoremIpsum;
class CommandTest {
@Nested
class TestIsDoneSuccessfully {
class TestIsFinishedSuccessfully {
@ParameterizedTest
@EnumSource(names = "FINISHED")
public void shouldReturnTrue(CommandStatus commandStatus) {
void shouldReturnTrue(CommandStatus commandStatus) {
var command = CommandTestFactory.createBuilder().status(commandStatus).build();
var isDoneSuccessfully = command.isDoneSuccessfully();
var isDoneSuccessfully = command.isFinishedSuccessfully();
assertThat(isDoneSuccessfully).isTrue();
}
@ParameterizedTest
@EnumSource(names = "FINISHED", mode = Mode.EXCLUDE)
public void shouldReturnFalse(CommandStatus commandStatus) {
void shouldReturnFalseOnStatusNotFinished(CommandStatus commandStatus) {
var command = CommandTestFactory.createBuilder().status(commandStatus).build();
var isDoneSuccessfully = command.isDoneSuccessfully();
var isDoneSuccessfully = command.isFinishedSuccessfully();
assertThat(isDoneSuccessfully).isFalse();
}
@ParameterizedTest
@EnumSource
void shouldReturnFalseOnErrorMessage(CommandStatus commandStatus) {
var command = CommandTestFactory.createBuilder().status(commandStatus).errorMessage(LoremIpsum.getInstance().getWords(1)).build();
var isDoneSuccessfully = command.isFinishedSuccessfully();
assertThat(isDoneSuccessfully).isFalse();
}
......
......@@ -90,7 +90,7 @@ class WiedervorlageCommandByVorgangControllerTest {
createCommand = CommandTestFactory.create();
doneCommand = createCommand.toBuilder().status(CommandStatus.FINISHED).build();
when(service.createWiedervorlage(any(), any())).thenReturn(createCommand);
when(service.updateNextFristOnSuccessfullyDoneCommand(createCommand, VorgangHeaderTestFactory.ID)).thenReturn(doneCommand);
when(service.updateNextFrist(createCommand, VorgangHeaderTestFactory.ID)).thenReturn(doneCommand);
}
@Nested
......@@ -108,7 +108,7 @@ class WiedervorlageCommandByVorgangControllerTest {
void shouldUpdateNextFristOnSuccessfullyDoneCommand() {
doRequest();
verify(service).updateNextFristOnSuccessfullyDoneCommand(createCommand, VorgangHeaderTestFactory.ID);
verify(service).updateNextFrist(createCommand, VorgangHeaderTestFactory.ID);
}
@SneakyThrows
......
......@@ -89,7 +89,7 @@ class WiedervorlageCommandControllerTest {
.body(WiedervorlageTestFactory.createAsMap()).build();
doneCommand = createCommand.toBuilder().status(CommandStatus.FINISHED).build();
when(service.editWiedervorlage(any(), any(), anyLong())).thenReturn(createCommand);
when(service.updateNextFristOnSuccessfullyDoneCommand(createCommand, VorgangHeaderTestFactory.ID)).thenReturn(doneCommand);
when(service.updateNextFrist(createCommand, VorgangHeaderTestFactory.ID)).thenReturn(doneCommand);
}
@SneakyThrows
......@@ -104,7 +104,7 @@ class WiedervorlageCommandControllerTest {
void shouldUpdateNextFristOnSuccessfullyDoneCommand() {
doRequest();
verify(service).updateNextFristOnSuccessfullyDoneCommand(createCommand, VorgangHeaderTestFactory.ID);
verify(service).updateNextFrist(createCommand, VorgangHeaderTestFactory.ID);
}
@SneakyThrows
......
......@@ -173,7 +173,7 @@ class WiedervorlageServiceTest {
}
@Nested
class TestUpdateNextFrist {
class TestDoUpdateNextFrist {
@Nested
class ServiceMethod {
......@@ -207,7 +207,7 @@ class WiedervorlageServiceTest {
}
private void callUpdateNextFrist() {
service.updateNextFrist(VorgangHeaderTestFactory.ID);
service.doUpdateNextFrist(VorgangHeaderTestFactory.ID);
}
}
......@@ -257,15 +257,15 @@ class WiedervorlageServiceTest {
}
@Nested
class TestUpdateNextFristOnSuccessfullyDoneCommand {
class TestUpdateNextFrist {
@Test
public void shouldWaitUntilCommandDone() {
void shouldWaitUntilCommandDone() {
var pendingCommand = CommandTestFactory.createBuilder().status(CommandStatus.PENDING).build();
var command = CommandTestFactory.create();
when(commandService.waitUntilDone(command)).thenReturn(pendingCommand);
service.updateNextFristOnSuccessfullyDoneCommand(command, VorgangHeaderTestFactory.ID);
service.updateNextFrist(command, VorgangHeaderTestFactory.ID);
verify(commandService).waitUntilDone(command);
}
......@@ -276,7 +276,7 @@ class WiedervorlageServiceTest {
var command = CommandTestFactory.create();
when(commandService.waitUntilDone(command)).thenReturn(errorCommand);
var result = service.updateNextFristOnSuccessfullyDoneCommand(command, VorgangHeaderTestFactory.ID);
var result = service.updateNextFrist(command, VorgangHeaderTestFactory.ID);
assertThat(result).isEqualTo(errorCommand);
}
......@@ -292,10 +292,10 @@ class WiedervorlageServiceTest {
}
@Test
public void shouldUpdateNextFrist() {
service.updateNextFristOnSuccessfullyDoneCommand(command, VorgangHeaderTestFactory.ID);
void shouldUpdateNextFrist() {
service.updateNextFrist(command, VorgangHeaderTestFactory.ID);
verify(service).updateNextFrist(VorgangHeaderTestFactory.ID);
verify(service).doUpdateNextFrist(VorgangHeaderTestFactory.ID);
}
}
......@@ -310,10 +310,10 @@ class WiedervorlageServiceTest {
}
@Test
public void shouldNotUpdateNextFrist() {
service.updateNextFristOnSuccessfullyDoneCommand(command, VorgangHeaderTestFactory.ID);
void shouldNotUpdateNextFrist() {
service.updateNextFrist(command, VorgangHeaderTestFactory.ID);
verify(service, never()).updateNextFrist(VorgangHeaderTestFactory.ID);
verify(service, never()).doUpdateNextFrist(VorgangHeaderTestFactory.ID);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment