diff --git a/formcycle-adapter/formcycle-adapter-impl/src/main/java/de/ozgcloud/eingang/formcycle/FormCycleFormDataMapper.java b/formcycle-adapter/formcycle-adapter-impl/src/main/java/de/ozgcloud/eingang/formcycle/FormCycleFormDataMapper.java index 40b324dbdd4cdb25229e037a426cb8f19dd9fd07..8db87c762e8ec704b791b8744f3182f2fcd63a8e 100644 --- a/formcycle-adapter/formcycle-adapter-impl/src/main/java/de/ozgcloud/eingang/formcycle/FormCycleFormDataMapper.java +++ b/formcycle-adapter/formcycle-adapter-impl/src/main/java/de/ozgcloud/eingang/formcycle/FormCycleFormDataMapper.java @@ -43,5 +43,6 @@ public interface FormCycleFormDataMapper { @Mapping(target = "zustaendigeStelle.organisationseinheitenId", source = "header.organisationsEinheitId") @Mapping(target = "header.formEngineName", constant = "FormCycle") @Mapping(target = "header.createdAt", source = "header.receivedAt") + @Mapping(target = "header.requestId", source = "header.requestId", defaultExpression = "java(java.util.UUID.randomUUID().toString())") FormData toFormData(FormCycleFormData fcFormData); } 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 06206c9f99a6bc1d9442c5452979f90090faa60a..4e6fbc510208c4bc5154d7b6e98327c938cc2af4 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 @@ -81,11 +81,11 @@ class FormDataController { semantikAdapter.processFormData(mappedFormData); - return FormCycleConfirmationResponse.newBuilder().setVorgangNummer(mappedFormData.getHeader().getRequestId()).build(); + return FormCycleConfirmationResponse.newBuilder().setVorgangNummer(mappedFormData.getHeader().getVorgangNummer()).build(); } private FormData addVorgangNummer(FormData mappedFormData) { - var formDataHeader = mappedFormData.getHeader().toBuilder().requestId(vorgangNummerSupplier.get()).build(); + var formDataHeader = mappedFormData.getHeader().toBuilder().vorgangNummer(vorgangNummerSupplier.get()).build(); return mappedFormData.toBuilder().header(formDataHeader).build(); } diff --git a/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormCycleFormDataMapperTest.java b/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormCycleFormDataMapperTest.java index e12156bc8c9ca0f7194f5f8134bc070669d73e04..feb214cccd2dca6533c39109f6f85619be567304 100644 --- a/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormCycleFormDataMapperTest.java +++ b/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormCycleFormDataMapperTest.java @@ -31,6 +31,7 @@ import org.mapstruct.factory.Mappers; import org.mockito.InjectMocks; import org.mockito.Spy; +import de.ozgcloud.eingang.common.formdata.FormHeaderTestFactory; import de.ozgcloud.vorgang.common.grpc.GrpcFormDataMapper; class FormCycleFormDataMapperTest { @@ -46,9 +47,12 @@ class FormCycleFormDataMapperTest { @Test void shouldMapHeader() { + var expectedFormHeader = FormHeaderTestFactory.create(); + var mapped = mapper.toFormData(FormCycleFormDataTestFactory.create()); - assertThat(mapped.getHeader()).isNotNull(); + assertThat(mapped.getHeader()).usingRecursiveComparison() + .ignoringFields("vorgangNummer", "sender", "formEngineName", "serviceKonto").isEqualTo(expectedFormHeader); } @Test diff --git a/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormCycleFormHeaderTestFactory.java b/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormCycleFormHeaderTestFactory.java index 04a0737a8b81102864d16dfca6c6ee1e7910d9ca..3065efa67f043925acf7204557ede13253660b10 100644 --- a/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormCycleFormHeaderTestFactory.java +++ b/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormCycleFormHeaderTestFactory.java @@ -23,12 +23,12 @@ */ package de.ozgcloud.eingang.formcycle; +import de.ozgcloud.eingang.common.formdata.FormHeaderTestFactory; import de.ozgcloud.eingang.formcycle.FormCycleFormHeader.Builder; public class FormCycleFormHeaderTestFactory { - static final String RECEIVED_AT = "2022-12-24T18:00:00Z"; - static final String FORM_NAME = "test form 1"; + static final String RECEIVED_AT = FormHeaderTestFactory.CREATED_AT_STR; static final String ORGANISATIONSEINHEIT_ID = "9030229"; static FormCycleFormHeader create() { @@ -37,8 +37,10 @@ public class FormCycleFormHeaderTestFactory { static Builder createBuilder() { return FormCycleFormHeader.newBuilder() - .setFormName(FORM_NAME) + .setRequestId(FormHeaderTestFactory.REQUEST_ID) + .setFormName(FormHeaderTestFactory.FORM_NAME) .setReceivedAt(RECEIVED_AT) + .setFormId(FormHeaderTestFactory.FORM_ID) .setOrganisationsEinheitId(ORGANISATIONSEINHEIT_ID); } } 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 25a588403ce89dc7c6bfa1cd89a5972f0ef2a458..06704947aea190ae8c3ee084a492c3b6d808e479 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 @@ -51,6 +51,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormDataTestFactory; import de.ozgcloud.eingang.common.formdata.FormHeader; +import de.ozgcloud.eingang.common.formdata.FormHeaderTestFactory; import de.ozgcloud.eingang.common.formdata.IncomingFileGroupTestFactory; import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory; import de.ozgcloud.eingang.common.formdata.ServiceKonto.PostfachAddress; @@ -87,8 +88,6 @@ class FormDataControllerTest { @Nested class ReceiveFormData { - static final String VORGANG_NUMMER = "VorgangNummer"; - private FormData mappedFormData = FormDataTestFactory.create(); @Captor @@ -98,7 +97,7 @@ class FormDataControllerTest { void init() { when(htmlCleaner.clean(any())).thenReturn(mappedFormData); when(mapper.toFormData(any())).thenReturn(mappedFormData); - when(vorgangNummerSupplier.get()).thenReturn(VORGANG_NUMMER); + when(vorgangNummerSupplier.get()).thenReturn(FormHeaderTestFactory.VORGANG_NUMMER); } @Test @@ -120,7 +119,7 @@ class FormDataControllerTest { var confirmation = FormCycleConfirmationResponse.parseFrom( doPostRequest().andReturn().getResponse().getContentAsByteArray()); - assertThat(confirmation.getVorgangNummer()).isEqualTo(VORGANG_NUMMER); + assertThat(confirmation.getVorgangNummer()).isEqualTo(FormHeaderTestFactory.VORGANG_NUMMER); } @Test @@ -128,7 +127,7 @@ class FormDataControllerTest { doPostRequest(); verify(semantikAdapter).processFormData(formDataCaptor.capture()); - assertThat(formDataCaptor.getValue().getHeader().getRequestId()).isEqualTo(VORGANG_NUMMER); + assertThat(formDataCaptor.getValue().getHeader().getRequestId()).isEqualTo(FormHeaderTestFactory.REQUEST_ID); } @Test @@ -151,7 +150,7 @@ class FormDataControllerTest { verify(semantikAdapter).processFormData(formDataCaptor.capture()); assertThat(formDataCaptor.getValue()).usingRecursiveComparison() - .ignoringFields("representations", "attachments", "numberOfAttachments", "header.requestId") + .ignoringFields("representations", "attachments", "numberOfAttachments") .isEqualTo(mappedFormData); } diff --git a/formcycle-adapter/formcycle-adapter-interface/src/main/protobuf/form-data.model.proto b/formcycle-adapter/formcycle-adapter-interface/src/main/protobuf/form-data.model.proto index ccac014c15c44f208360b6c4dc8c0d23d4e77504..28ff49ebad2b3dba76a536a6df872d2f43ed210e 100644 --- a/formcycle-adapter/formcycle-adapter-interface/src/main/protobuf/form-data.model.proto +++ b/formcycle-adapter/formcycle-adapter-interface/src/main/protobuf/form-data.model.proto @@ -47,6 +47,8 @@ message FormCycleFormHeader { string receivedAt = 1; string formName = 2; string organisationsEinheitId = 3; + string formId = 4; + string requestId = 5; } message FormCycleServiceKonto {