From 2f3bf4e61e744460f79bd37650a2cd05e0e499f6 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Thu, 10 Aug 2023 17:57:19 +0200 Subject: [PATCH] OZG-4109 [fix] don't set empty service konto --- .../eingang/formcycle/FormDataController.java | 31 ++++++++----------- .../formcycle/FormDataControllerTest.java | 13 ++++++-- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/formcycle-adapter/formcycle-adapter-impl/src/main/java/de/ozgcloud/eingang/formcycle/FormDataController.java b/formcycle-adapter/formcycle-adapter-impl/src/main/java/de/ozgcloud/eingang/formcycle/FormDataController.java index 49e23df0d..dbae0279f 100644 --- a/formcycle-adapter/formcycle-adapter-impl/src/main/java/de/ozgcloud/eingang/formcycle/FormDataController.java +++ b/formcycle-adapter/formcycle-adapter-impl/src/main/java/de/ozgcloud/eingang/formcycle/FormDataController.java @@ -151,30 +151,25 @@ class FormDataController { } FormData addServiceKonto(FormCycleFormData formData, FormData mappedFormData) { - mappedFormData.getHeader().setServiceKonto(buildServiceKonto(formData.getServiceKonto())); + if (formData.hasServiceKonto()) { + mappedFormData.getHeader().setServiceKonto(buildServiceKonto(formData.getServiceKonto())); + } return mappedFormData; } - private ServiceKonto buildServiceKonto(FormCycleServiceKonto formCycleServiceKonto) { - return Optional.ofNullable(formCycleServiceKonto) - .map(sk -> ServiceKonto.builder() - .type(sk.getType()) - .postfachAddress(buildPostfachAddress(sk)) - .build()) - .orElse(null); + ServiceKonto buildServiceKonto(FormCycleServiceKonto formCycleServiceKonto) { + return ServiceKonto.builder() + .type(formCycleServiceKonto.getType()) + .postfachAddress(buildPostfachAddress(formCycleServiceKonto)) + .build(); } PostfachAddress buildPostfachAddress(FormCycleServiceKonto formCycleServiceKonto) { - - return Optional.ofNullable(formCycleServiceKonto.getAddress()) - .map(address -> PostfachAddress.builder() - .identifier(Optional.ofNullable(address) - .map(FormCyclePostfachAddress::getIdentifier) - .map(this::buildPostfachId) - .orElse(null)) - .version(address.getVersion()) - .build()) - .orElse(null); + if (!formCycleServiceKonto.hasAddress()) { + return null; + } + var address = formCycleServiceKonto.getAddress(); + return PostfachAddress.builder().identifier(buildPostfachId(address.getIdentifier())).version(address.getVersion()).build(); } private StringBasedIdentifier buildPostfachId(String identifier) { diff --git a/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormDataControllerTest.java b/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormDataControllerTest.java index e64a394f2..529668d93 100644 --- a/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormDataControllerTest.java +++ b/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormDataControllerTest.java @@ -41,6 +41,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.InjectMocks; import org.mockito.Mock; +import org.mockito.Spy; import org.springframework.mock.web.MockMultipartFile; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; @@ -59,6 +60,7 @@ import lombok.SneakyThrows; class FormDataControllerTest { + @Spy @InjectMocks private FormDataController controller; @@ -293,6 +295,13 @@ class FormDataControllerTest { assertThat(getServiceKontoType(formData)).isEqualTo(FormCycleServiceKontoTestFactory.TYPE); } + @Test + void shouldNotMapEmptyServiceKonto() { + controller.addServiceKonto(FormCycleFormData.newBuilder().build(), buildEmptyFormDataWithHeader()); + + verify(controller, never()).buildServiceKonto(any()); + } + String getServiceKontoType(FormData formData) { return formData.getHeader().getServiceKonto().getType(); } @@ -309,9 +318,9 @@ class FormDataControllerTest { @Test void shouldNotMapEmptyPostkorbId() { - var formData = controller.addServiceKonto(FormCycleFormData.newBuilder().build(), buildEmptyFormDataWithHeader()); + var postfachAddress = controller.buildPostfachAddress(FormCycleServiceKonto.newBuilder().build()); - assertThat(getPostfachIdFormData(formData)).isBlank(); + assertThat(postfachAddress).isNull(); } @Test -- GitLab