diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapter.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapter.java index 5d7224c75ce7ff634737b79d28aeaf6e05931c6d..36a9a187a73b98daef840cd7784643867f4c7573 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapter.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapter.java @@ -43,24 +43,15 @@ public class AfmEngineBasedAdapter implements EngineBasedSemantikAdapter { @Override public FormData parseFormData(FormData formData) { - var vorgangNummer = formData.getHeader().getVorgangNummer(); var processedFormData = intelliFormRepresentationAdapter.adaptByRepresentations(formData); for (var mapper : mappers) { processedFormData = mapper.parseFormData(processedFormData); } - return removeProcessedData(addVorgangNummer(processedFormData, vorgangNummer)); + return removeProcessedData(processedFormData); } - private FormData addVorgangNummer(FormData formData, String vorgangNummer) { - return formData.toBuilder() - .header(formData.getHeader().toBuilder() - .vorgangNummer(vorgangNummer) - .build() - ) - .build(); - } private FormData removeProcessedData(FormData formData) { return FormDataUtils.from(formData) diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapper.java index 0f63ef3686963482d332dd1d844e75ae4d2ec865..42222ec8132a79c555967290dd1f2298ec930a18 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapper.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapper.java @@ -67,6 +67,7 @@ class AfmHeaderMapper implements AfmEngineBasedMapper { var formHeaderBuilder = FormHeader.builder() .requestId((String) headerDataMap.get(ID)) + .vorgangNummer((String) headerDataMap.get(ID)) .createdAt(getCreatedAt(headerDataMap)) .formId((String) headerDataMap.get(FORM_ID)) .formName((String) headerDataMap.get(FORM)) @@ -105,4 +106,4 @@ class AfmHeaderMapper implements AfmEngineBasedMapper { .remove(ServiceKontoFactory.REST_RESPONSE_NAME) .build(); } -} \ No newline at end of file +} diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapterTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapterTest.java index 609284d26fccdb41ed91818c5df7ed0161990cdc..a99b67392b0c0cf2ce97c3230fc123280dc27857 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapterTest.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapterTest.java @@ -100,13 +100,6 @@ class AfmEngineBasedAdapterTest { assertThat(mappedFormData.getFormData()).doesNotContainKey(AfmAntragstellerMapper.POSTFACH_ID); } - @DisplayName("should keep vorgang nummer") - @Test - void shouldKeepVorgangNummer() { - var mappedFormData = adapter.parseFormData(formData); - - assertThat(mappedFormData.getHeader().getVorgangNummer()).isEqualTo(VORGANG_NUMMER); - } } } diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapperTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapperTest.java index 7af0dcd5c208e6c3989c0e8be54948e382c45ac6..80a0e966be30d910f62596d02d669cc36d5062a8 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapperTest.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapperTest.java @@ -77,6 +77,13 @@ class AfmHeaderMapperTest { assertThat(parsedFormData.getHeader().getRequestId()).isEqualTo(AfmHeaderTestFactory.ID); } + @Test + void shouldMapVorgangNummer() { + var parsedFormData = parseFormData(); + + assertThat(parsedFormData.getHeader().getVorgangNummer()).isEqualTo(AfmHeaderTestFactory.ID); + } + @Test void shouldMapCreatedAt() { var parsedFormData = parseFormData(); @@ -189,4 +196,4 @@ class AfmHeaderMapperTest { } } -} \ No newline at end of file +} diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java index 6a5705a31bc4ea95c96227e291f3d4b3e814da45..e7525540e6bcc35f40434c68d1bcc0df7c12bbc5 100644 --- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java +++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java @@ -13,6 +13,7 @@ import java.util.Optional; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import org.mockito.ArgumentCaptor; @@ -137,15 +138,30 @@ class XtaITCase { assertThat(organisationseinheitenId).isEqualTo("9795669"); } - @DisplayName("should have vorgang nummer") - @TestZipFileNames - void shouldHaveVorgangNummer(String zipFileName) { + @DisplayName("should have generated vorgang nummer for dFoerdermittel") + @Test + void shouldHaveVorgangsnummer() { + mockNachrichtenBroker("dfoerdermittel_with_anlage.zip"); + + runner.runGetXtaMessages(); + + var vorgangsNummer = captureEingang() + .getHeader() + .getVorgangNummer(); + assertThat(vorgangsNummer).hasSameSizeAs("4627-TY3X"); + } + + @DisplayName("should have vorgang nummer for AFM") + @TestZipFileNamesFromAFM + void shouldHaveVorgangsnummerForAfm(String zipFileName) { mockNachrichtenBroker(zipFileName); runner.runGetXtaMessages(); - var vorgangNummer = captureEingang().getHeader().getVorgangNummer(); - assertThat(vorgangNummer).hasSize(9); + var vorgangsNummer = captureEingang() + .getHeader() + .getVorgangNummer(); + assertThat(vorgangsNummer).hasSameSizeAs("20240404370530710707"); } private GrpcEingang captureEingang() { @@ -219,6 +235,18 @@ class XtaITCase { @interface TestZipFileNamesWithoutPdf { } + @Target({ ElementType.METHOD }) + @Retention(RetentionPolicy.RUNTIME) + @ParameterizedTest + @ValueSource(strings = { + "mantelantrag_without_anlage.zip", + "brauchtumsfeuer_without_anlage.zip", + "mantelantrag_with_anlage.zip", + "brauchtumsfeuer_with_anlage.zip", + }) + @interface TestZipFileNamesFromAFM { + } + @Target({ ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @ParameterizedTest