diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/AktenzeichenChangeHistoryBuilder.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/AktenzeichenChangeHistoryBuilder.java index 4be70bf034c78d146a638a661dea6665639e3176..9af4e5c41d71d45c297dc5bec47ccfcb40896401 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/AktenzeichenChangeHistoryBuilder.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/AktenzeichenChangeHistoryBuilder.java @@ -1,7 +1,6 @@ package de.ozgcloud.alfa.historie; import java.util.Optional; -import java.util.stream.Stream; import org.apache.commons.lang3.StringUtils; @@ -20,11 +19,7 @@ class AktenzeichenChangeHistoryBuilder extends ChangeHistoryBuilder<Aktenzeichen } @Override - Stream<Command> retrieveRelevantCommands() { - return commands.stream().filter(this::isSetAktenzeichenCommand); - } - - boolean isSetAktenzeichenCommand(Command command) { + boolean isRelevant(Command command) { return command.getOrder().equals(CommandOrder.SET_AKTENZEICHEN); } diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/AssignedUserChangeHistoryBuilder.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/AssignedUserChangeHistoryBuilder.java index aa55e4317f9f37b1e6977297045bc722d7f966a8..b48b74cc1c04e70cf1d5a3e0cbd117bcb114c3d0 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/AssignedUserChangeHistoryBuilder.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/AssignedUserChangeHistoryBuilder.java @@ -1,7 +1,6 @@ package de.ozgcloud.alfa.historie; import java.util.Optional; -import java.util.stream.Stream; import org.apache.commons.lang3.StringUtils; @@ -28,11 +27,7 @@ class AssignedUserChangeHistoryBuilder extends ChangeHistoryBuilder<AssignedUser } @Override - Stream<Command> retrieveRelevantCommands() { - return commands.stream().filter(this::isAssignUserCommand); - } - - boolean isAssignUserCommand(Command command) { + boolean isRelevant(Command command) { return command.getOrder().equals(CommandOrder.ASSIGN_USER); } diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/ChangeHistoryBuilder.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/ChangeHistoryBuilder.java index 9465e188f63b029741da6791ec8437c0d2760aa8..886ceafa109be774f0f07c071438264041679132 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/ChangeHistoryBuilder.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/ChangeHistoryBuilder.java @@ -3,7 +3,6 @@ package de.ozgcloud.alfa.historie; import java.util.ArrayList; import java.util.Comparator; import java.util.List; -import java.util.Map; import java.util.Optional; import java.util.stream.Stream; @@ -37,7 +36,11 @@ abstract class ChangeHistoryBuilder<T extends ChangeHistoryBuilder<T>> { .flatMap(this::toVorgangChanges); } - abstract Stream<Command> retrieveRelevantCommands(); + Stream<Command> retrieveRelevantCommands() { + return commands.stream().filter(this::isRelevant); + } + + abstract boolean isRelevant(Command command); Stream<Command> inChronologicalOrder(Stream<Command> commands) { return commands.sorted(Comparator.comparing(Command::getFinishedAt)); @@ -78,9 +81,7 @@ abstract class ChangeHistoryBuilder<T extends ChangeHistoryBuilder<T>> { } String getValueFromCommandBody(String propertyName, Command command) { - var body = Optional.ofNullable(command.getBody()).orElse(Map.of()); - var propertyValue = body.get(propertyName); - return propertyValue != null ? propertyValue.toString() : StringUtils.EMPTY; + return Optional.ofNullable(command.getBody()).map(body -> body.get(propertyName)).map(Object::toString).orElse(StringUtils.EMPTY); } record CommandWithChangeValues(Command command, String valueBeforeChange, String valueAfterChange) { diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilder.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilder.java index d4f6bb0e015d06e4554f38ab15b72de4d3b864f5..db75ab13a8f3b04a378f95dc18768c7f9df5ebed 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilder.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilder.java @@ -3,7 +3,6 @@ package de.ozgcloud.alfa.historie; import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.stream.Stream; import de.ozgcloud.alfa.common.command.Command; import de.ozgcloud.alfa.common.command.CommandOrder; @@ -41,11 +40,7 @@ public class StatusChangeHistoryBuilder extends ChangeHistoryBuilder<StatusChang } @Override - Stream<Command> retrieveRelevantCommands() { - return commands.stream().filter(this::isStatusChangeCommand); - } - - boolean isStatusChangeCommand(Command command) { + boolean isRelevant(Command command) { return STATUS_CHANGE_COMMAND_ORDER.contains(command.getOrder()); } diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/AktenzeichenChangeHistoryBuilderTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/AktenzeichenChangeHistoryBuilderTest.java index b53c71a74f848aa6613238fa0cd6c36bd6ce6e8f..578007c995c76a52ecd9ecca1f0ebabc4644f5b1 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/AktenzeichenChangeHistoryBuilderTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/AktenzeichenChangeHistoryBuilderTest.java @@ -34,48 +34,26 @@ public class AktenzeichenChangeHistoryBuilderTest { .withOrganisationseinheitenID(ORGANISATIONSEINHEITEN_ID); @Nested - class TestRetrieveRelevantCommands { + class TestIsRelevant { @Test - void shouldCallIsSetAktenzeichenCommand() { - builder.retrieveRelevantCommands().toList(); - - verify(builder).isSetAktenzeichenCommand(previousCommand); - verify(builder).isSetAktenzeichenCommand(command); - } - - @Test - void shouldFilterOutIrrelevantCommands() { - doReturn(false).when(builder).isSetAktenzeichenCommand(previousCommand); - doReturn(true).when(builder).isSetAktenzeichenCommand(command); - - var result = builder.retrieveRelevantCommands().toList(); - - assertThat(result).containsExactly(command); - } - } - - @Nested - class TestIsSetAktenzeichenCommand { - - @Test - void shouldReturnTrueForSetAktenzeichenCommand() { + void shouldReturnTrue() { var command = CommandTestFactory.createBuilder() .order(CommandOrder.SET_AKTENZEICHEN) .build(); - var result = builder.isSetAktenzeichenCommand(command); + var result = builder.isRelevant(command); assertThat(result).isTrue(); } @Test - void shouldReturnFalseForCommandWithIrrelevantOrder() { + void shouldReturnFalse() { var command = CommandTestFactory.createBuilder() .order(CommandOrder.VORGANG_WIEDEREROEFFNEN) .build(); - var result = builder.isSetAktenzeichenCommand(command); + var result = builder.isRelevant(command); assertThat(result).isFalse(); } diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/AssignedUserChangeHistoryBuilderTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/AssignedUserChangeHistoryBuilderTest.java index 7bda2c2adc0529d939bf48a1e8ce7b02179fa4e9..fe8e03ecd2ea716f1427f5b56a020e19f054b9d9 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/AssignedUserChangeHistoryBuilderTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/AssignedUserChangeHistoryBuilderTest.java @@ -43,48 +43,26 @@ public class AssignedUserChangeHistoryBuilderTest { .withOrganisationseinheitenID(ORGANISATIONSEINHEITEN_ID); @Nested - class TestRetrieveRelevantCommands { + class TestIsRelevant { @Test - void shouldCallIsAssignUserCommand() { - builder.retrieveRelevantCommands().toList(); - - verify(builder).isAssignUserCommand(previousCommand); - verify(builder).isAssignUserCommand(command); - } - - @Test - void shouldFilterOutIrrelevantCommands() { - doReturn(false).when(builder).isAssignUserCommand(previousCommand); - doReturn(true).when(builder).isAssignUserCommand(command); - - var result = builder.retrieveRelevantCommands().toList(); - - assertThat(result).containsExactly(command); - } - } - - @Nested - class TestIsAssignUserCommand { - - @Test - void shouldReturnTrueForAssignUserCommand() { + void shouldReturnTrue() { var command = CommandTestFactory.createBuilder() .order(CommandOrder.ASSIGN_USER) .build(); - var result = builder.isAssignUserCommand(command); + var result = builder.isRelevant(command); assertThat(result).isTrue(); } @Test - void shouldReturnFalseForCommandWithIrrelevantOrder() { + void shouldReturnFalse() { var command = CommandTestFactory.createBuilder() .order(CommandOrder.VORGANG_WIEDEREROEFFNEN) .build(); - var result = builder.isAssignUserCommand(command); + var result = builder.isRelevant(command); assertThat(result).isFalse(); } diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/ChangeHistoryBuilderTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/ChangeHistoryBuilderTest.java index b74e3731d50037845599f1743d0173e50a11b6ce..823baf3713395824cd0902c0ba3e0d45d4a0d903 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/ChangeHistoryBuilderTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/ChangeHistoryBuilderTest.java @@ -66,6 +66,31 @@ public class ChangeHistoryBuilderTest { } } + @Nested + class TestRetrieveRelevantCommands { + + @BeforeEach + void init() { + doReturn(false).when(builder).isRelevant(previousCommand); + doReturn(true).when(builder).isRelevant(command); + } + + @Test + void shouldCallIsRelevant() { + builder.retrieveRelevantCommands().toList(); + + verify(builder).isRelevant(previousCommand); + verify(builder).isRelevant(command); + } + + @Test + void shouldFilterOutIrrelevantCommands() { + var result = builder.retrieveRelevantCommands().toList(); + + assertThat(result).containsExactly(command); + } + } + @Nested class TestInChronologicalOrder { @@ -239,7 +264,7 @@ public class ChangeHistoryBuilderTest { private static class TestChangeHistoryBuilder extends ChangeHistoryBuilder<TestChangeHistoryBuilder> { @Override - Stream<Command> retrieveRelevantCommands() { + boolean isRelevant(Command command) { throw new NotImplementedException(); } diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilderTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilderTest.java index 824bce9b0ce2ef6df80e084c27a5eef8e177bab2..a1616f1a22a508790191315f61d77fbaa2f2b675 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilderTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilderTest.java @@ -37,35 +37,13 @@ public class StatusChangeHistoryBuilderTest { .withOrganisationseinheitenID(ORGANISATIONSEINHEITEN_ID); @Nested - class TestRetrieveRelevantCommands { - - @Test - void shouldCallIsStatusChangeCommand() { - builder.retrieveRelevantCommands().toList(); - - verify(builder).isStatusChangeCommand(previousCommand); - verify(builder).isStatusChangeCommand(command); - } - - @Test - void shouldFilterOutIrrelevantCommands() { - doReturn(false).when(builder).isStatusChangeCommand(previousCommand); - doReturn(true).when(builder).isStatusChangeCommand(command); - - var result = builder.retrieveRelevantCommands().toList(); - - assertThat(result).containsExactly(command); - } - } - - @Nested - class TestIsStatusChangeCommand { + class TestIsRelevant { @EnumSource(mode = Mode.INCLUDE, names = { "VORGANG_ANNEHMEN", "VORGANG_VERWERFEN", "VORGANG_ZURUECKHOLEN", "VORGANG_BEARBEITEN", "VORGANG_BESCHEIDEN", "VORGANG_ABSCHLIESSEN", "VORGANG_ZUM_LOESCHEN_MARKIEREN", "VORGANG_LOESCHEN", "VORGANG_ZURUECKSTELLEN" }) @ParameterizedTest void shouldReturnTrue(CommandOrder order) { - var isStatusChangeCommand = builder.isStatusChangeCommand(CommandTestFactory.createBuilder().order(order).build()); + var isStatusChangeCommand = builder.isRelevant(CommandTestFactory.createBuilder().order(order).build()); assertThat(isStatusChangeCommand).isTrue(); } @@ -74,7 +52,7 @@ public class StatusChangeHistoryBuilderTest { "VORGANG_BESCHEIDEN", "VORGANG_ABSCHLIESSEN", "VORGANG_ZUM_LOESCHEN_MARKIEREN", "VORGANG_LOESCHEN", "VORGANG_ZURUECKSTELLEN" }) @ParameterizedTest void shouldReturnFalse(CommandOrder order) { - var isStatusChangeCommand = builder.isStatusChangeCommand(CommandTestFactory.createBuilder().order(order).build()); + var isStatusChangeCommand = builder.isRelevant(CommandTestFactory.createBuilder().order(order).build()); assertThat(isStatusChangeCommand).isFalse(); }