From 05eae2367561e681e16cb2e16732cbee0af0042e Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Tue, 6 Aug 2024 09:01:48 +0200
Subject: [PATCH] OZG-6335 apply code review changes

---
 .../ozgcloud/alfa/common/command/Command.java |  6 +++--
 .../WiedervorlageCommandController.java       |  4 ++--
 .../wiedervorlage/WiedervorlageService.java   | 18 +++++++-------
 .../alfa/common/command/CommandTest.java      | 22 +++++++++++++----
 ...vorlageCommandByVorgangControllerTest.java |  4 ++--
 .../WiedervorlageCommandControllerTest.java   |  4 ++--
 .../WiedervorlageServiceTest.java             | 24 +++++++++----------
 7 files changed, 48 insertions(+), 34 deletions(-)

diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/Command.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/Command.java
index ad178941ac..1a5d2ac5fd 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/Command.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/Command.java
@@ -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
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageCommandController.java b/alfa-service/src/main/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageCommandController.java
index 08e6eab21d..2cc413979d 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageCommandController.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageCommandController.java
@@ -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();
 		}
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageService.java
index 9fd646607e..28f4795c36 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageService.java
@@ -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)
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandTest.java
index 170c3a34fa..f36fbc385c 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandTest.java
@@ -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();
 		}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageCommandByVorgangControllerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageCommandByVorgangControllerTest.java
index 7c91a7687f..ef4a43f95f 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageCommandByVorgangControllerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageCommandByVorgangControllerTest.java
@@ -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
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageCommandControllerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageCommandControllerTest.java
index 7ecbfc74db..198f7a0053 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageCommandControllerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageCommandControllerTest.java
@@ -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
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageServiceTest.java
index b3d3ffd3fd..0479bb9094 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/wiedervorlage/WiedervorlageServiceTest.java
@@ -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);
 			}
 		}
 
-- 
GitLab