diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/attacheditem/VorgangAttachedItemHistorieProcessor.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/attacheditem/VorgangAttachedItemHistorieProcessor.java new file mode 100644 index 0000000000000000000000000000000000000000..ecbd3482e02823170ba6c0bfcb1b3a737fcabba7 --- /dev/null +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/attacheditem/VorgangAttachedItemHistorieProcessor.java @@ -0,0 +1,22 @@ +package de.ozgcloud.alfa.common.attacheditem; + +import java.util.function.Predicate; +import java.util.stream.Stream; + +import org.springframework.stereotype.Component; + +import de.ozgcloud.alfa.common.command.Command; +import de.ozgcloud.alfa.common.command.CommandOrder; +import de.ozgcloud.alfa.historie.HistorieProcessor; + +@Component +class VorgangAttachedItemHistorieProcessor implements HistorieProcessor { + + private static final Predicate<Command> IS_NOT_DELETE_ATTACHED_ITEM = command -> CommandOrder.DELETE_ATTACHED_ITEM != command.getCommandOrder(); + + @Override + public Stream<Command> process(Stream<Command> commands) { + return commands.filter(IS_NOT_DELETE_ATTACHED_ITEM); + } + +} diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieCommandHandler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieCommandHandler.java index e7f6307b6518c49161460cc229d352c5cfff3b34..c2d2ae7363c33a4ed93418b6440c5d192e385c2d 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieCommandHandler.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieCommandHandler.java @@ -25,7 +25,6 @@ package de.ozgcloud.alfa.historie; import java.util.Map; import java.util.Optional; -import java.util.function.Predicate; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -53,20 +52,10 @@ class HistorieCommandHandler { static final String OZGCLOUD_NACHRICHTEN_MANAGER = "OzgCloud_NachrichtenManager"; static final String CLIENT = "client"; - private static final Predicate<Command> IS_CREATE_ATTACHED_ITEM = command -> command.getCommandOrder() == CommandOrder.CREATE_ATTACHED_ITEM; - - public boolean isHistorieCommand(Command command) { - return !isDeleteVorgangAttachedItem(command); - } - private boolean isOzgCloudNachrichtenManager(Command command) { return StringUtils.equals(MapUtils.getString(command.getBody(), CLIENT), OZGCLOUD_NACHRICHTEN_MANAGER); } - boolean isDeleteVorgangAttachedItem(Command command) { - return command.getCommandOrder() == CommandOrder.DELETE_ATTACHED_ITEM; - } - public Command translateOrder(Command command) { HistorieCommandHandler translator = new HistorieCommandHandler(); return switch (command.getCommandOrder()) { diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieService.java index dbf3cb8299a6d051e9d27cbb0ee1395111327f27..47da447b7ba760e58d7614f3397012334174fbd6 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieService.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieService.java @@ -23,7 +23,6 @@ */ package de.ozgcloud.alfa.historie; -import java.util.HashSet; import java.util.List; import java.util.stream.Stream; @@ -42,13 +41,8 @@ class HistorieService { private final List<HistorieProcessor> processors; public Stream<Command> findFinishedCommands(String vorgangId) { - var reduceBy = new HashSet<String>(); var commands = commandService.findFinishedCommands(vorgangId) - .filter(historieCommandHandler::isHistorieCommand) .map(historieCommandHandler::translateOrder).toList(); - - commands = commands.stream().filter(command -> !reduceBy.contains(command.getId())) - .toList(); return processCommands(commands); } diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/attacheditem/VorgangAttachedItemHistorieProcessorTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/attacheditem/VorgangAttachedItemHistorieProcessorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f53d75a581b511b3cdc0f6775f24077e4bd35a58 --- /dev/null +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/attacheditem/VorgangAttachedItemHistorieProcessorTest.java @@ -0,0 +1,44 @@ +package de.ozgcloud.alfa.common.attacheditem; + +import static org.assertj.core.api.Assertions.*; + +import java.util.stream.Stream; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; +import org.junit.jupiter.params.provider.EnumSource.Mode; +import org.mockito.Spy; + +import de.ozgcloud.alfa.common.command.CommandOrder; +import de.ozgcloud.alfa.common.command.CommandTestFactory; + +class VorgangAttachedItemHistorieProcessorTest { + + @Spy + private VorgangAttachedItemHistorieProcessor processor; + + @Nested + class TestProcess { + + @ParameterizedTest + @EnumSource(names = { "DELETE_ATTACHED_ITEM" }, mode = Mode.EXCLUDE) + void shouldKeepCommand(CommandOrder order) { + var command = CommandTestFactory.createBuilder().order(order.name()).build(); + + var commands = processor.process(Stream.of(command)); + + assertThat(commands).containsExactly(command); + } + + @ParameterizedTest + @EnumSource(names = { "DELETE_ATTACHED_ITEM" }, mode = Mode.INCLUDE) + void shouldRemoveCommand(CommandOrder order) { + var command = CommandTestFactory.createBuilder().order(order.name()).build(); + + var commands = processor.process(Stream.of(command)); + + assertThat(commands).isEmpty(); + } + } +} diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieCommandHandlerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieCommandHandlerTest.java index 787ad1a283dcd8c9e78c1a568e25f1403ac0928c..7fe5599fffac950da6c74ae51b8789ad1d96a13e 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieCommandHandlerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieCommandHandlerTest.java @@ -24,9 +24,7 @@ package de.ozgcloud.alfa.historie; import static org.assertj.core.api.Assertions.*; -import static org.mockito.Mockito.*; -import java.util.Collections; import java.util.Map; import org.junit.jupiter.api.DisplayName; @@ -60,35 +58,6 @@ class HistorieCommandHandlerTest { @Mock private CommandService commandService; - @DisplayName("Is historie command") - @Nested - class TestIsHistorieCommand { - - @Test - void shouldReturnTrueIfNoItemNameExists() { - var result = handler - .isHistorieCommand(Command.builder().order(CommandOrder.CREATE_ATTACHED_ITEM.name()).body(Collections.emptyMap()).build()); - - assertThat(result).isTrue(); - } - - @Test - void shouldReturnFalseOnDeleteVorgangAttachedItem() { - var result = handler.isHistorieCommand(CommandTestFactory.createBuilder().order(CommandOrder.DELETE_ATTACHED_ITEM.name()).build()); - - assertThat(result).isFalse(); - } - - @Test - void shouldCallIsDeleteVorgangAttachedItem() { - var command = CommandTestFactory.create(); - - handler.isHistorieCommand(command); - - verify(handler).isDeleteVorgangAttachedItem(command); - } - } - @DisplayName("translate order") @Nested class TestTranslateOrders { diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieServiceTest.java index 2f1a2fe680ee2835bdf1becaa9e2fd64945c4575..ffe2a8e7ef026a28d33615d123a73ce559cc6791 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieServiceTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieServiceTest.java @@ -85,7 +85,6 @@ class HistorieServiceTest { @BeforeEach void initMock() { when(commandService.findFinishedCommands(any())).thenReturn(List.of(responseCommand).stream()); - when(historieCommandHandler.isHistorieCommand(any())).thenReturn(true); when(historieCommandHandler.translateOrder(any())).thenAnswer(i -> i.getArgument(0)); } @@ -97,13 +96,6 @@ class HistorieServiceTest { verify(commandService).findFinishedCommands(VorgangHeaderTestFactory.ID); } - @Test - void shouldFilterInvalidCommands() { - service.findFinishedCommands(CommandTestFactory.VORGANG_ID).toList(); - - verify(historieCommandHandler).isHistorieCommand(responseCommand); - } - @Test void shouldTranslateCommandOrderByCommandHandler() { service.findFinishedCommands(CommandTestFactory.VORGANG_ID).toList(); @@ -150,7 +142,6 @@ class HistorieServiceTest { @BeforeEach void mock() { - when(historieCommandHandler.isHistorieCommand(any())).thenReturn(true); when(commandService.findFinishedCommands(any())).thenReturn(finishedCommands.stream()); when(historieCommandHandler.translateOrder(any())).thenAnswer(i -> i.getArgument(0)); when(processor.process(any())).thenAnswer(i -> i.getArgument(0));