From 203b74a166ec8830b7395ea0e018dfde456861d3 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Mon, 19 Feb 2024 13:05:28 +0100 Subject: [PATCH] OZG-4713 OZG-4927 fix export logic for assign user old and new value --- .../alfa/historie/ExportHistorieService.java | 19 +++++- .../historie/ExportHistorieServiceTest.java | 68 ++++++++++++++++++- 2 files changed, 83 insertions(+), 4 deletions(-) diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/historie/ExportHistorieService.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/historie/ExportHistorieService.java index 00aad71b66..f6b06c6ed6 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/historie/ExportHistorieService.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/historie/ExportHistorieService.java @@ -6,6 +6,7 @@ import java.util.stream.Stream; import org.springframework.stereotype.Service; import de.ozgcloud.alfa.common.DateConverter; +import de.ozgcloud.alfa.common.command.CommandOrder; import de.ozgcloud.alfa.vorgang.VorgangWithEingang; import de.xoev.xdomea.HistorienProtokollInformationType; import lombok.RequiredArgsConstructor; @@ -27,8 +28,8 @@ public class ExportHistorieService { HistorienProtokollInformationType createHistorienProtokollInformationType(VorgangChange vorgangChange) { var historienProtokollInformationType = new HistorienProtokollInformationType(); - historienProtokollInformationType.setMetadatumAlterWert(vorgangChange.getValueBeforeChange()); - historienProtokollInformationType.setMetadatumNeuerWert(vorgangChange.getValueAfterChange()); + historienProtokollInformationType.setMetadatumAlterWert(createValueBeforeChange(vorgangChange)); + historienProtokollInformationType.setMetadatumNeuerWert(createValueAfterChange(vorgangChange)); historienProtokollInformationType.setAkteur(createAkteur(vorgangChange)); historienProtokollInformationType.setDatumUhrzeit(DateConverter.toXmlGregorianCalendar(vorgangChange.getFinishedAt())); historienProtokollInformationType.setAktion(vorgangChange.getOrder().name()); @@ -39,4 +40,18 @@ public class ExportHistorieService { return vorgangChange.getCreatedByName() + "; " + vorgangChange.getOrganisationseinheitenId(); } + String createValueBeforeChange(VorgangChange vorgangChange) { + if (vorgangChange.getOrder() == CommandOrder.ASSIGN_USER) { + return vorgangChange.getValueBeforeChange() + "; " + vorgangChange.getOrganisationseinheitenId(); + } + return vorgangChange.getValueBeforeChange(); + } + + String createValueAfterChange(VorgangChange vorgangChange) { + if (vorgangChange.getOrder() == CommandOrder.ASSIGN_USER) { + return vorgangChange.getValueAfterChange() + "; " + vorgangChange.getOrganisationseinheitenId(); + } + return vorgangChange.getValueAfterChange(); + } + } diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/historie/ExportHistorieServiceTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/historie/ExportHistorieServiceTest.java index 965cb03cce..ca25dd2f4d 100644 --- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/historie/ExportHistorieServiceTest.java +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/historie/ExportHistorieServiceTest.java @@ -6,11 +6,15 @@ import static org.mockito.Mockito.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; +import org.junit.jupiter.params.provider.EnumSource.Mode; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; import de.ozgcloud.alfa.common.DateConverter; +import de.ozgcloud.alfa.common.command.CommandOrder; import de.ozgcloud.alfa.export.HistorienProtokollInformationTypeTestFactory; import de.ozgcloud.alfa.vorgang.VorgangWithEingang; import de.ozgcloud.alfa.vorgang.VorgangWithEingangTestFactory; @@ -98,25 +102,45 @@ class ExportHistorieServiceTest { @Nested class TestCreateHistorienProtokollInformationType { + private static final String CREATED_VALUE_BEFORE_CHANGE = + VorgangChangeTestFactory.VALUE_BEFORE_CHANGE + VorgangChangeTestFactory.ORGANISATIONSEINHEITEN_ID; + private static final String CREATED_VALUE_AFTER_CHANGE = + VorgangChangeTestFactory.VALUE_AFTER_CHANGE + VorgangChangeTestFactory.ORGANISATIONSEINHEITEN_ID; private final VorgangChange vorgangChange = VorgangChangeTestFactory.create(); @BeforeEach void setUp() { doReturn(VorgangChangeTestFactory.CREATED_BY_NAME).when(service).createAkteur(vorgangChange); + doReturn(CREATED_VALUE_BEFORE_CHANGE).when(service).createValueBeforeChange(vorgangChange); + doReturn(CREATED_VALUE_AFTER_CHANGE).when(service).createValueAfterChange(vorgangChange); + } + + @Test + void shouldCreateValueBeforeChange() { + service.createHistorienProtokollInformationType(vorgangChange); + + verify(service).createValueBeforeChange(vorgangChange); } @Test void shouldHaveAlterWert() { var created = service.createHistorienProtokollInformationType(vorgangChange); - assertThat(created.getMetadatumAlterWert()).isEqualTo(VorgangChangeTestFactory.VALUE_BEFORE_CHANGE); + assertThat(created.getMetadatumAlterWert()).isEqualTo(CREATED_VALUE_BEFORE_CHANGE); + } + + @Test + void shouldCreateValueAfterChange() { + service.createHistorienProtokollInformationType(vorgangChange); + + verify(service).createValueAfterChange(vorgangChange); } @Test void shouldHaveNeuerWert() { var created = service.createHistorienProtokollInformationType(vorgangChange); - assertThat(created.getMetadatumNeuerWert()).isEqualTo(VorgangChangeTestFactory.VALUE_AFTER_CHANGE); + assertThat(created.getMetadatumNeuerWert()).isEqualTo(CREATED_VALUE_AFTER_CHANGE); } @Test @@ -160,4 +184,44 @@ class ExportHistorieServiceTest { } } + @Nested + class TestCreateValueBeforeChange { + + @ParameterizedTest + @EnumSource(mode = Mode.EXCLUDE, names = "ASSIGN_USER") + void shouldReturnValueForOrder(CommandOrder order) { + var value = service.createValueBeforeChange(VorgangChangeTestFactory.createBuilder().order(order).build()); + + assertThat(value).isEqualTo(VorgangChangeTestFactory.VALUE_BEFORE_CHANGE); + } + + @Test + void shouldReturnValueForAssignUserOrder() { + var value = service.createValueBeforeChange(VorgangChangeTestFactory.createBuilder().order(CommandOrder.ASSIGN_USER).build()); + + assertThat(value).isEqualTo( + String.format("%s; %s", VorgangChangeTestFactory.VALUE_BEFORE_CHANGE, VorgangChangeTestFactory.ORGANISATIONSEINHEITEN_ID)); + } + } + + @Nested + class TestCreateValueAfterChange { + + @ParameterizedTest + @EnumSource(mode = Mode.EXCLUDE, names = "ASSIGN_USER") + void shouldReturnValueForOrder(CommandOrder order) { + var value = service.createValueAfterChange(VorgangChangeTestFactory.createBuilder().order(order).build()); + + assertThat(value).isEqualTo(VorgangChangeTestFactory.VALUE_AFTER_CHANGE); + } + + @Test + void shouldReturnValueForAssignUserOrder() { + var value = service.createValueAfterChange(VorgangChangeTestFactory.createBuilder().order(CommandOrder.ASSIGN_USER).build()); + + assertThat(value).isEqualTo( + String.format("%s; %s", VorgangChangeTestFactory.VALUE_AFTER_CHANGE, VorgangChangeTestFactory.ORGANISATIONSEINHEITEN_ID)); + } + } + } \ No newline at end of file -- GitLab