diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapter.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapter.java index 592fea25bbffbe37a4ac7bc4896ddd8086ad0816..b3e75f0cd900dd24d9095c7953939ae450d5db5c 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapter.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapter.java @@ -35,9 +35,6 @@ public class DFoerdermittelEngineBasedSemantikAdapter implements EngineBasedSema private static final String KEY_FACHNACHRICHT = "Fachnachricht"; private static final String KEY_POSTFACH_ID = "InboxReference"; private static final String KEY_ORGANISATIONS_EINHEIT_ID = "MetaText1"; - private static final String KEY_FORM_NAME = "Title"; - - static final String DEFAULT_FORM_NAME = "dFördermittelantrag: Ohne Titel"; @Autowired private ServiceKontoFactory serviceKontoFactory; @@ -51,7 +48,9 @@ public class DFoerdermittelEngineBasedSemantikAdapter implements EngineBasedSema } FormData processFachnachricht(FormData formData) { - Map<String, Object> fachnachricht = getFachnachricht(formData); + @SuppressWarnings("unchecked") + Map<String, Object> fachnachricht = (Map<String, Object>) MapUtils.getMap(formData.getFormData(), KEY_FACHNACHRICHT, + Collections.<String, Object>emptyMap()); var extendedFormData = addFormName(formData); extendedFormData = addFormEngineName(extendedFormData); @@ -59,7 +58,6 @@ public class DFoerdermittelEngineBasedSemantikAdapter implements EngineBasedSema return addOrganisationsEinheitId(extendedFormData, fachnachricht); } - FormData addServiceKonto(FormData formData, Map<String, Object> fachnachricht) { return Optional.ofNullable((String) fachnachricht.get(KEY_POSTFACH_ID)) .map(this::extractPrefix) @@ -90,20 +88,12 @@ public class DFoerdermittelEngineBasedSemantikAdapter implements EngineBasedSema FormData addFormName(FormData formData) { return formData.toBuilder() .header(formData.getHeader().toBuilder() - .formName(getFormName(formData).orElse(DEFAULT_FORM_NAME)) + // TODO replace formName with actual name <Title> from Fachnachricht (KOP-2239) + .formName("dFördermittelantrag") .build() ) .build(); } - private Optional<String> getFormName(FormData formData) { - return Optional.ofNullable((String) getFachnachricht(formData).get(KEY_FORM_NAME)) - .filter(StringUtils::isNotBlank); - } - - @SuppressWarnings("unchecked") - private Map<String, Object> getFachnachricht(FormData formData) { - return (Map<String, Object>) MapUtils.getMap(formData.getFormData(), KEY_FACHNACHRICHT, Collections.<String, Object>emptyMap()); - } FormData addFormEngineName(FormData formData) { return formData.toBuilder() diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapterTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapterTest.java index 8f3bcec4c6ac8eb48984b6f40c38fca0473d5fe5..05473793842bc54d734988d7cf1ad872d5789b7a 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapterTest.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapterTest.java @@ -1,7 +1,5 @@ package de.ozgcloud.eingang.semantik.enginebased.dfoerdermittel; -import static de.ozgcloud.eingang.semantik.enginebased.dfoerdermittel.DFoerdermittelEngineBasedSemantikAdapter.*; -import static de.ozgcloud.eingang.semantik.enginebased.dfoerdermittel.DFoerdermittelFormDataTestFactory.*; import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.InstanceOfAssertFactories.*; import static org.mockito.ArgumentMatchers.*; @@ -11,7 +9,6 @@ import java.util.Collections; import java.util.Map; 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.mockito.InjectMocks; @@ -223,39 +220,18 @@ class DFoerdermittelEngineBasedSemantikAdapterTest { DFoerdermittelFormDataTestFactory.createFachnachrichtMap()); assertThat(formData.getZustaendigeStelle()).isNotNull().extracting(ZustaendigeStelle::getOrganisationseinheitenId) - .isEqualTo(ORGANISATIONS_EINHEIT_ID); + .isEqualTo(DFoerdermittelFormDataTestFactory.ORGANISATIONS_EINHEIT_ID); } } @Nested class TestAddFormName { - @DisplayName("should have form name from title") @Test - void shouldHaveFormNameFromTitle() { - var formData = adapter.addFormName(createFormDataWithTitle(FORM_NAME)); + void shouldHaveFormName() { + var formData = adapter.addFormName(DFoerdermittelFormDataTestFactory.create()); - assertThat(formData.getHeader().getFormName()).isEqualTo(FORM_NAME); - } - - @DisplayName("should have default form name for empty title") - @Test - void shouldHaveDefaultFormNameForEmptyTitle() { - var formData = adapter.addFormName(createFormDataWithTitle("")); - - assertThat(formData.getHeader().getFormName()).isEqualTo(DEFAULT_FORM_NAME); - } - - @DisplayName("should have default form name for missing title") - @Test - void shouldHaveDefaultFormNameForMissingTitle() { - var formData = adapter.addFormName(createFormDataWithTitle(null)); - - assertThat(formData.getHeader().getFormName()).isEqualTo(DEFAULT_FORM_NAME); - } - - FormData createFormDataWithTitle(String title) { - return createFachnachrichtBuilder().title(title).build().createFormData(); + assertThat(formData.getHeader().getFormName()).isEqualTo("dFördermittelantrag"); } } diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelFormDataTestFactory.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelFormDataTestFactory.java index 969f4a635ed892e59106591f73d945b27f0b40be..b99c66e48559d39b5c58e747c145a58dc0490363 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelFormDataTestFactory.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelFormDataTestFactory.java @@ -1,69 +1,25 @@ package de.ozgcloud.eingang.semantik.enginebased.dfoerdermittel; -import static java.util.stream.Collectors.*; - import java.util.Map; -import java.util.Objects; -import java.util.function.Predicate; -import java.util.stream.IntStream; import de.ozgcloud.eingang.common.formdata.FormData; -import lombok.Builder; class DFoerdermittelFormDataTestFactory { - static final String FORM_NAME = "Name of form"; static final String POSTFACH_ID = "4dd01647-b9d9-4775-1b50-08da3d83800a"; static final String ORGANISATIONS_EINHEIT_ID = "9795669"; - static Fachnachricht.FachnachrichtBuilder createFachnachrichtBuilder() { - return Fachnachricht.builder() - .title(FORM_NAME) - .postfachId(POSTFACH_ID) - .organisationsEinheitId(ORGANISATIONS_EINHEIT_ID); - } - static FormData create() { return createBuilder().build(); } static FormData.FormDataBuilder createBuilder() { - return createBuilderWithFachnachricht(createFachnachrichtBuilder().build()); - } - - static FormData.FormDataBuilder createBuilderWithFachnachricht(Fachnachricht fachnachricht) { return FormData.builder() - .formData(Map.of("Fachnachricht", createFachnachrichtMapWithFachnachricht(fachnachricht))); + .formData(Map.of("Fachnachricht", createFachnachrichtMap())); } static Map<String, Object> createFachnachrichtMap() { - return createFachnachrichtMapWithFachnachricht(createFachnachrichtBuilder().build()); - } - - static Map<String, Object> createFachnachrichtMapWithFachnachricht(Fachnachricht fachnachricht) { - return createMapWithValueFilter( - Objects::nonNull, - "Title", fachnachricht.title(), - "InboxReference", "sh/sh/" + fachnachricht.postfachId(), - "MetaText1", fachnachricht.organisationsEinheitId() - ); - } - - private static Map<String, Object> createMapWithValueFilter(Predicate<String> valuePredicate, String... keyValuePairs) { - if (keyValuePairs.length % 2 != 0) { - throw new IllegalArgumentException("Array length must be even to form key-value pairs."); - } - - return IntStream.range(0, keyValuePairs.length / 2) - .boxed() - .filter(i -> valuePredicate.test(keyValuePairs[2 * i + 1])) - .collect(toMap(i -> keyValuePairs[2 * i], i -> keyValuePairs[2 * i + 1])); - } - - @Builder - record Fachnachricht(String title, String postfachId, String organisationsEinheitId) { - FormData createFormData() { - return createBuilderWithFachnachricht(this).build(); - } + return Map.of("InboxReference", "sh/sh/4dd01647-b9d9-4775-1b50-08da3d83800a", + "MetaText1", ORGANISATIONS_EINHEIT_ID); } }