Skip to content
Snippets Groups Projects
Commit 1fbca93d authored by Felix Reichenbach's avatar Felix Reichenbach
Browse files

OZG-6461 implement VorgangAttachedItemHistorieProcessor and clean up old code

parent 59852fb2
No related branches found
No related tags found
1 merge request!5Ozg 6461 historie refactoring
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);
}
}
...@@ -25,7 +25,6 @@ package de.ozgcloud.alfa.historie; ...@@ -25,7 +25,6 @@ package de.ozgcloud.alfa.historie;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.function.Predicate;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -53,20 +52,10 @@ class HistorieCommandHandler { ...@@ -53,20 +52,10 @@ class HistorieCommandHandler {
static final String OZGCLOUD_NACHRICHTEN_MANAGER = "OzgCloud_NachrichtenManager"; static final String OZGCLOUD_NACHRICHTEN_MANAGER = "OzgCloud_NachrichtenManager";
static final String CLIENT = "client"; 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) { private boolean isOzgCloudNachrichtenManager(Command command) {
return StringUtils.equals(MapUtils.getString(command.getBody(), CLIENT), OZGCLOUD_NACHRICHTEN_MANAGER); 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) { public Command translateOrder(Command command) {
HistorieCommandHandler translator = new HistorieCommandHandler(); HistorieCommandHandler translator = new HistorieCommandHandler();
return switch (command.getCommandOrder()) { return switch (command.getCommandOrder()) {
......
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
*/ */
package de.ozgcloud.alfa.historie; package de.ozgcloud.alfa.historie;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.stream.Stream; import java.util.stream.Stream;
...@@ -42,13 +41,8 @@ class HistorieService { ...@@ -42,13 +41,8 @@ class HistorieService {
private final List<HistorieProcessor> processors; private final List<HistorieProcessor> processors;
public Stream<Command> findFinishedCommands(String vorgangId) { public Stream<Command> findFinishedCommands(String vorgangId) {
var reduceBy = new HashSet<String>();
var commands = commandService.findFinishedCommands(vorgangId) var commands = commandService.findFinishedCommands(vorgangId)
.filter(historieCommandHandler::isHistorieCommand)
.map(historieCommandHandler::translateOrder).toList(); .map(historieCommandHandler::translateOrder).toList();
commands = commands.stream().filter(command -> !reduceBy.contains(command.getId()))
.toList();
return processCommands(commands); return processCommands(commands);
} }
......
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();
}
}
}
...@@ -24,9 +24,7 @@ ...@@ -24,9 +24,7 @@
package de.ozgcloud.alfa.historie; package de.ozgcloud.alfa.historie;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
import java.util.Collections;
import java.util.Map; import java.util.Map;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
...@@ -60,35 +58,6 @@ class HistorieCommandHandlerTest { ...@@ -60,35 +58,6 @@ class HistorieCommandHandlerTest {
@Mock @Mock
private CommandService commandService; 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") @DisplayName("translate order")
@Nested @Nested
class TestTranslateOrders { class TestTranslateOrders {
......
...@@ -85,7 +85,6 @@ class HistorieServiceTest { ...@@ -85,7 +85,6 @@ class HistorieServiceTest {
@BeforeEach @BeforeEach
void initMock() { void initMock() {
when(commandService.findFinishedCommands(any())).thenReturn(List.of(responseCommand).stream()); when(commandService.findFinishedCommands(any())).thenReturn(List.of(responseCommand).stream());
when(historieCommandHandler.isHistorieCommand(any())).thenReturn(true);
when(historieCommandHandler.translateOrder(any())).thenAnswer(i -> i.getArgument(0)); when(historieCommandHandler.translateOrder(any())).thenAnswer(i -> i.getArgument(0));
} }
...@@ -97,13 +96,6 @@ class HistorieServiceTest { ...@@ -97,13 +96,6 @@ class HistorieServiceTest {
verify(commandService).findFinishedCommands(VorgangHeaderTestFactory.ID); verify(commandService).findFinishedCommands(VorgangHeaderTestFactory.ID);
} }
@Test
void shouldFilterInvalidCommands() {
service.findFinishedCommands(CommandTestFactory.VORGANG_ID).toList();
verify(historieCommandHandler).isHistorieCommand(responseCommand);
}
@Test @Test
void shouldTranslateCommandOrderByCommandHandler() { void shouldTranslateCommandOrderByCommandHandler() {
service.findFinishedCommands(CommandTestFactory.VORGANG_ID).toList(); service.findFinishedCommands(CommandTestFactory.VORGANG_ID).toList();
...@@ -150,7 +142,6 @@ class HistorieServiceTest { ...@@ -150,7 +142,6 @@ class HistorieServiceTest {
@BeforeEach @BeforeEach
void mock() { void mock() {
when(historieCommandHandler.isHistorieCommand(any())).thenReturn(true);
when(commandService.findFinishedCommands(any())).thenReturn(finishedCommands.stream()); when(commandService.findFinishedCommands(any())).thenReturn(finishedCommands.stream());
when(historieCommandHandler.translateOrder(any())).thenAnswer(i -> i.getArgument(0)); when(historieCommandHandler.translateOrder(any())).thenAnswer(i -> i.getArgument(0));
when(processor.process(any())).thenAnswer(i -> i.getArgument(0)); when(processor.process(any())).thenAnswer(i -> i.getArgument(0));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment