diff --git a/pom.xml b/pom.xml index 384eecd8145b5dedb84638e3738fe27e6a916b2a..acbbd57cc366d5ee98e0da6e6ff863d122d097b4 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ <!-- Version of FORMCYCLE to built against. --> <xfc.version>8.1.2</xfc.version> - <fc-server-maven-plugin.version>8.0.3</fc-server-maven-plugin.version> + <fc-server-maven-plugin.version>8.1.0</fc-server-maven-plugin.version> <fc-deploy-plugin-maven-plugin.version>8.0.1</fc-deploy-plugin-maven-plugin.version> <formcycle-adapter-interface.version>2.9.0-SNAPSHOT</formcycle-adapter-interface.version> diff --git a/src/main/java/de/ozgcloud/formcycle/formdata/FormData.java b/src/main/java/de/ozgcloud/formcycle/formdata/FormData.java index d46820e1a84f3c76941e7bdf804f734199a65c4b..927d28116c137a8891b4bbe1612da992cdfec5dc 100644 --- a/src/main/java/de/ozgcloud/formcycle/formdata/FormData.java +++ b/src/main/java/de/ozgcloud/formcycle/formdata/FormData.java @@ -26,6 +26,7 @@ package de.ozgcloud.formcycle.formdata; import java.util.List; import java.util.Optional; import java.util.Set; +import java.util.UUID; import de.ozgcloud.formcycle.attachment.FormcycleAttachment; import de.ozgcloud.formcycle.errorhandling.Warning; @@ -37,14 +38,16 @@ import lombok.Singular; @Builder(toBuilder = true) public class FormData { - + private final String requestId = UUID.randomUUID().toString(); private String organisationsEinheitId; private String formName; private ServiceKonto serviceKonto; + @Singular private Set<String> attachmentNames; + @Singular private Set<String> attachmentUuids; private List<FormNode> fieldData; diff --git a/src/main/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapper.java b/src/main/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapper.java index b0a47fa1efefb0acc1872622367758d2d7b63d83..5cac566cc0470b4254aa8e556fcbcc321ab0f599 100644 --- a/src/main/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapper.java +++ b/src/main/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapper.java @@ -123,6 +123,7 @@ public class OzgCloudFormDataMapper { FormCycleFormHeader buildHeader(FormData formData) { FormCycleFormHeader.Builder builder = FormCycleFormHeader.newBuilder() + .setRequestId(formData.getRequestId()) .setReceivedAt(ZonedDateTime.now().toString()) .setOrganisationsEinheitId(formData.getOrganisationsEinheitId()); Optional.ofNullable(formData.getFormName()).ifPresent(builder::setFormName); diff --git a/src/test/java/de/ozgcloud/formcycle/OzgPluginExecutorTest.java b/src/test/java/de/ozgcloud/formcycle/OzgPluginExecutorTest.java index 14541d27b86ca97190257a779a1cdffc99bc78e3..1e0b561e24714761e875b74eebfbb143809599e6 100644 --- a/src/test/java/de/ozgcloud/formcycle/OzgPluginExecutorTest.java +++ b/src/test/java/de/ozgcloud/formcycle/OzgPluginExecutorTest.java @@ -345,7 +345,61 @@ class OzgPluginExecutorTest { @Test void shouldSetMessage() { - var warning = executor.buildWarning(OzgPluginSoftError.MISSING_REPRESENTATION, MESSAGE); + var warning = executor.buildMissingRepresentationsWarning(REQUEST_ID); + + assertThat(warning.getMessage()).contains(REQUEST_ID); + } + } + + @Nested + class TestBuildMissingAttachmentsWarning { + + private final String REQUEST_ID = "REQUEST_ID"; + + @Test + void shouldSetErrorCode() { + var warning = executor.buildMissingAttachmentsWarning(REQUEST_ID); + + assertThat(warning.getErrorCode()).isEqualTo(OzgPluginSoftError.MISSING_ATTACHMENTS.name()); + } + + @Test + void shouldSetMessage() { + var warning = executor.buildMissingAttachmentsWarning(REQUEST_ID); + + assertThat(warning.getMessage()).contains(REQUEST_ID); + } + } + + @Nested + @DisplayName("Send data") + class TestSendData { + + @Mock + private FormCycleFormData formcycleFormData; + @Mock + private FormCycleConfirmationResponse response; + + @Captor + private ArgumentCaptor<List<FormcycleAttachment>> attachmentsCapture; + @Captor + private ArgumentCaptor<List<FormcycleAttachment>> representationsCapture; + + @Test + void shouldCallMapper() { + sendFormData(); + + verify(ozgCloudFormDataMapper).map(FORM_DATA); + } + + @Test + void shouldSendFormData() { + when(ozgCloudFormDataMapper.map(any())).thenReturn(formcycleFormData); + + sendFormData(); + + verify(ozgHttpClient).send(eq(formcycleFormData), any(), any()); + } @Test void shouldSendAttachments() { diff --git a/src/test/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapperTest.java b/src/test/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapperTest.java index 82cbc184f4b32628d8aa357a2d4e9e3f0d7e43aa..b7865e06d4fe765efca972a4c59dff913817fa45 100644 --- a/src/test/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapperTest.java +++ b/src/test/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapperTest.java @@ -165,7 +165,7 @@ class OzgCloudFormDataMapperTest { var formFields = mapper.mapFormFields(formNode); - assertThat(formFields).first().extracting(GrpcFormField::getLabel).toString().isEmpty(); + assertThat(formFields).first().extracting(GrpcFormField::getLabel, STRING).isEmpty(); } @Test @@ -174,7 +174,7 @@ class OzgCloudFormDataMapperTest { var formFields = mapper.mapFormFields(formNode); - assertThat(formFields).first().extracting(GrpcFormField::getName).toString().isEmpty(); + assertThat(formFields).first().extracting(GrpcFormField::getName, STRING).isEmpty(); } } @@ -245,7 +245,6 @@ class OzgCloudFormDataMapperTest { @Test void shouldSetLabel() { - var subform = mapper.mapSubForm(formNode).get(); assertThat(subform.getLabel()).isEqualTo(StructureMockFactory.ITEM_TITLE); @@ -355,31 +354,38 @@ class OzgCloudFormDataMapperTest { } @Nested - @DisplayName("Map header") - class TestHeader { + @DisplayName("build header") + class TestBuildHeader { private final FormData formData = FormDataTestFactory.create(); @Test void shouldSetReceivedTime() { - var ozgFormDataHeader = mapper.map(formData).getHeader(); + var ozgFormDataHeader = mapper.buildHeader(formData); assertThat(ozgFormDataHeader.getReceivedAt()).isNotNull(); } @Test void shouldSetFormName() { - var ozgFormDataHeader = mapper.map(formData).getHeader(); + var ozgFormDataHeader = mapper.buildHeader(formData); assertThat(ozgFormDataHeader.getFormName()).isEqualTo(FormDataTestFactory.FORM_NAME); } @Test void shouldSetOrganisationsEinheitId() { - var ozgFormDataHeader = mapper.map(formData).getHeader(); + var ozgFormDataHeader = mapper.buildHeader(formData); assertThat(ozgFormDataHeader.getOrganisationsEinheitId()).isEqualTo(ORGANISATIONS_EINHEIT_ID); } + + @Test + void shouldSetRequestId() { + var ozgFormDataHeader = mapper.buildHeader(formData); + + assertThat(ozgFormDataHeader.getRequestId()).isEqualTo(formData.getRequestId()); + } } @Nested