Skip to content
Snippets Groups Projects
Commit cf2f43b3 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-4713 OZG-4926 Move retrieveRelevantCommands to superclass

parent 1006d621
Branches
Tags
No related merge requests found
Showing with 48 additions and 103 deletions
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);
}
......
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);
}
......
......@@ -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) {
......
......@@ -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());
}
......
......@@ -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();
}
......
......@@ -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();
}
......
......@@ -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();
}
......
......@@ -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();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment