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;
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()) {
......
......@@ -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);
}
......
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 @@
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 {
......
......@@ -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));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment