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

OZG-6461 apply code review comments

parent dd3a3def
No related branches found
No related tags found
1 merge request!5Ozg 6461 historie refactoring
...@@ -2,7 +2,6 @@ package de.ozgcloud.alfa.loeschanforderung; ...@@ -2,7 +2,6 @@ package de.ozgcloud.alfa.loeschanforderung;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import java.util.function.Predicate;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
...@@ -24,11 +23,6 @@ class LoeschAnforderungHistorieProcessor implements HistorieProcessor { ...@@ -24,11 +23,6 @@ class LoeschAnforderungHistorieProcessor implements HistorieProcessor {
private final CommandService commandService; private final CommandService commandService;
private final VorgangAttachedItemService vorgangAttachedItemService; private final VorgangAttachedItemService vorgangAttachedItemService;
private static final Predicate<? super Command> IS_LOESCH_ANFORDERUNG_ZURUECKNEHMEN = command -> CommandOrder.LOESCH_ANFORDERUNG_ZURUECKNEHMEN
.equals(command.getCommandOrder());
private static final Predicate<? super Command> IS_CREATE_ATTACHED_ITEM = command -> CommandOrder.CREATE_ATTACHED_ITEM
.equals(command.getCommandOrder());
@Override @Override
public Stream<Command> process(Stream<Command> commands) { public Stream<Command> process(Stream<Command> commands) {
var commandIdsToRemove = new HashSet<String>(); var commandIdsToRemove = new HashSet<String>();
...@@ -41,7 +35,7 @@ class LoeschAnforderungHistorieProcessor implements HistorieProcessor { ...@@ -41,7 +35,7 @@ class LoeschAnforderungHistorieProcessor implements HistorieProcessor {
} }
boolean isNotRevokedLoeschAnforderungZuruecknehmen(Command command) { boolean isNotRevokedLoeschAnforderungZuruecknehmen(Command command) {
if (Predicate.not(IS_LOESCH_ANFORDERUNG_ZURUECKNEHMEN).test(command)) { if (!isLoeschAnforderungZuruecknehmen(command)) {
return true; return true;
} }
var changeStatusCommand = commandService.getById(getChangeStatusCommandId(command)); var changeStatusCommand = commandService.getById(getChangeStatusCommandId(command));
...@@ -49,19 +43,28 @@ class LoeschAnforderungHistorieProcessor implements HistorieProcessor { ...@@ -49,19 +43,28 @@ class LoeschAnforderungHistorieProcessor implements HistorieProcessor {
} }
boolean isNotCreateLoeschAnforderungVorgangAttachedItem(Command command) { boolean isNotCreateLoeschAnforderungVorgangAttachedItem(Command command) {
if (Predicate.not(IS_CREATE_ATTACHED_ITEM).test(command)) { if (!isCreateAttachedItem(command)) {
return true; return true;
} }
return !vorgangAttachedItemService.isLoeschAnforderung(MapUtils.getString(command.getBody(), VorgangAttachedItem.FIELD_ITEM_NAME)); return !vorgangAttachedItemService.isLoeschAnforderung(MapUtils.getString(command.getBody(), VorgangAttachedItem.FIELD_ITEM_NAME));
} }
private boolean isCreateAttachedItem(Command command) {
return CommandOrder.CREATE_ATTACHED_ITEM.equals(command.getCommandOrder());
}
Command addLoeschAnforderungZuruecknehmenRelatedCommandIds(Set<String> commandIdsToRemove, Command command) { Command addLoeschAnforderungZuruecknehmenRelatedCommandIds(Set<String> commandIdsToRemove, Command command) {
if (IS_LOESCH_ANFORDERUNG_ZURUECKNEHMEN.test(command)) { if (isLoeschAnforderungZuruecknehmen(command)) {
commandIdsToRemove.addAll(getCommandBodyIds(command)); commandIdsToRemove.addAll(getCommandBodyIds(command));
} }
return command; return command;
} }
private boolean isLoeschAnforderungZuruecknehmen(Command command) {
return CommandOrder.LOESCH_ANFORDERUNG_ZURUECKNEHMEN.equals(command.getCommandOrder());
}
private Set<String> getCommandBodyIds(Command command) { private Set<String> getCommandBodyIds(Command command) {
return Set.of(getDeleteAttachedItemCommandId(command), getChangeStatusCommandId(command)); return Set.of(getDeleteAttachedItemCommandId(command), getChangeStatusCommandId(command));
} }
......
...@@ -37,11 +37,6 @@ class PostfachNachrichtHistorieProcessor implements HistorieProcessor { ...@@ -37,11 +37,6 @@ class PostfachNachrichtHistorieProcessor implements HistorieProcessor {
return isDirection(command, DIRECTION_OUTGOING); return isDirection(command, DIRECTION_OUTGOING);
} }
@SuppressWarnings("unchecked")
private Map<String, Object> getItemMap(Command command) {
return MapUtils.getMap(command.getBody(), CommandBodyMapper.ITEM_PROPERTY);
}
public Command translateSendPostfachMailCommand(Command command) { public Command translateSendPostfachMailCommand(Command command) {
if (CommandOrder.SEND_POSTFACH_MAIL == command.getCommandOrder()) { if (CommandOrder.SEND_POSTFACH_MAIL == command.getCommandOrder()) {
return command.toBuilder().order(CommandOrder.SEND_POSTFACH_NACHRICHT.name()).build(); return command.toBuilder().order(CommandOrder.SEND_POSTFACH_NACHRICHT.name()).build();
...@@ -75,4 +70,9 @@ class PostfachNachrichtHistorieProcessor implements HistorieProcessor { ...@@ -75,4 +70,9 @@ class PostfachNachrichtHistorieProcessor implements HistorieProcessor {
private boolean isDirection(Command command, String expectedDirection) { private boolean isDirection(Command command, String expectedDirection) {
return StringUtils.equals(MapUtils.getString(getItemMap(command), DIRECTION), expectedDirection); return StringUtils.equals(MapUtils.getString(getItemMap(command), DIRECTION), expectedDirection);
} }
@SuppressWarnings("unchecked")
private Map<String, Object> getItemMap(Command command) {
return MapUtils.getMap(command.getBody(), CommandBodyMapper.ITEM_PROPERTY);
}
} }
...@@ -3,9 +3,11 @@ package de.ozgcloud.alfa.kommentar; ...@@ -3,9 +3,11 @@ package de.ozgcloud.alfa.kommentar;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.mockito.Spy; import org.mockito.Spy;
...@@ -27,31 +29,38 @@ class KommentarHistorieProcessorTest { ...@@ -27,31 +29,38 @@ class KommentarHistorieProcessorTest {
class TestProcess { class TestProcess {
private final Command command = CommandTestFactory.create(); private final Command command = CommandTestFactory.create();
private final Command translatedOnceCommand = CommandTestFactory.create();
private final Command translatedTwiceCommand = CommandTestFactory.create();
@Test @BeforeEach
void shouldPropagateAllOrders() { void mockTranslation() {
doReturn(command).when(processor).translateCreateKommentar(command); doReturn(translatedOnceCommand).when(processor).translateCreateKommentar(command);
doReturn(command).when(processor).translateEditKommentar(command); doReturn(translatedTwiceCommand).when(processor).translateEditKommentar(translatedOnceCommand);
var commands = processor.process(Stream.of(command));
assertThat(commands).containsExactly(command);
} }
@Test @Test
void shouldCallTranslateCreateKommentar() { void shouldCallTranslateCreateKommentar() {
processor.process(Stream.of(command)).toList(); process();
verify(processor).translateCreateKommentar(command); verify(processor).translateCreateKommentar(command);
} }
@Test @Test
void shouldCallTranslateEditKommentar() { void shouldCallTranslateEditKommentar() {
doReturn(command).when(processor).translateCreateKommentar(command); process();
verify(processor).translateEditKommentar(translatedOnceCommand);
}
@Test
void shouldReturnStreamOfTranslatedCommand() {
var commands = process();
processor.process(Stream.of(command)).toList(); assertThat(commands).containsExactly(translatedTwiceCommand);
}
verify(processor).translateEditKommentar(command); private List<Command> process() {
return processor.process(Stream.of(command)).toList();
} }
} }
......
...@@ -4,6 +4,7 @@ import static org.assertj.core.api.Assertions.*; ...@@ -4,6 +4,7 @@ import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*; import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
...@@ -80,7 +81,7 @@ class LoeschAnforderungHistorieProcessorTest { ...@@ -80,7 +81,7 @@ class LoeschAnforderungHistorieProcessorTest {
void shouldAddLoeschAnforderungZuruecknehmenRelatedCommandIds() { void shouldAddLoeschAnforderungZuruecknehmenRelatedCommandIds() {
process(); process();
verify(processor).addLoeschAnforderungZuruecknehmenRelatedCommandIds(anySet(), eq(command)); verify(processor).addLoeschAnforderungZuruecknehmenRelatedCommandIds(argThat(Collection::isEmpty), eq(command));
} }
@Test @Test
...@@ -123,6 +124,13 @@ class LoeschAnforderungHistorieProcessorTest { ...@@ -123,6 +124,13 @@ class LoeschAnforderungHistorieProcessorTest {
doReturn(false).when(processor).isNotCreateLoeschAnforderungVorgangAttachedItem(any()); doReturn(false).when(processor).isNotCreateLoeschAnforderungVorgangAttachedItem(any());
} }
@Test
void shouldNotCallAddLoeschAnforderungZuruecknehmenRelatedCommandIds() {
process();
verify(processor, never()).addLoeschAnforderungZuruecknehmenRelatedCommandIds(any(), any());
}
@Test @Test
void shouldRemoveCommand() { void shouldRemoveCommand() {
var commands = process(); var commands = process();
...@@ -189,7 +197,7 @@ class LoeschAnforderungHistorieProcessorTest { ...@@ -189,7 +197,7 @@ class LoeschAnforderungHistorieProcessorTest {
@BeforeEach @BeforeEach
void mock() { void mock() {
doReturn(changeStatusCommandId).when(processor).getChangeStatusCommandId(any()); doReturn(changeStatusCommandId).when(processor).getChangeStatusCommandId(any());
doReturn(CommandTestFactory.create()).when(commandService).getById(any()); when(commandService.getById(any())).thenReturn(CommandTestFactory.create());
} }
@Test @Test
...@@ -300,11 +308,13 @@ class LoeschAnforderungHistorieProcessorTest { ...@@ -300,11 +308,13 @@ class LoeschAnforderungHistorieProcessorTest {
} }
@Nested @Nested
class TestGetRevokedLoeschAnforderungIds { class TestAddLoeschAnforderungZuruecknehmenRelatedCommandIds {
private final String changeStatusCommandId = UUID.randomUUID().toString(); private final String changeStatusCommandId = UUID.randomUUID().toString();
private final String deleteAttachedItemCommandId = UUID.randomUUID().toString(); private final String deleteAttachedItemCommandId = UUID.randomUUID().toString();
private final Map<String, ?> commandBody = Map.of(DeleteLoeschAnforderung.CHANGE_STATUS_COMMAND_ID_FIELD, changeStatusCommandId, private final Map<String, ?> commandBody = Map.of(
DeleteLoeschAnforderung.DELETE_ATTACHED_ITEM_COMMAND_ID_FIELD, deleteAttachedItemCommandId); DeleteLoeschAnforderung.CHANGE_STATUS_COMMAND_ID_FIELD, changeStatusCommandId,
DeleteLoeschAnforderung.DELETE_ATTACHED_ITEM_COMMAND_ID_FIELD, deleteAttachedItemCommandId,
LoremIpsum.getInstance().getWords(1), UUID.randomUUID().toString());
private final Command command = CommandTestFactory.createBuilder() private final Command command = CommandTestFactory.createBuilder()
.order(CommandOrder.LOESCH_ANFORDERUNG_ZURUECKNEHMEN.name()) .order(CommandOrder.LOESCH_ANFORDERUNG_ZURUECKNEHMEN.name())
.body(commandBody) .body(commandBody)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment