diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerMapperTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerMapperTest.java index e40b13db45356729cd68b0fec172931b999c4c17..f68df9df3da7a3905ef9a4dc0fdd9a96c112c890 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerMapperTest.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerMapperTest.java @@ -37,11 +37,9 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.Mockito; import de.ozgcloud.eingang.common.formdata.Antragsteller; import de.ozgcloud.eingang.common.formdata.FormData; -import de.ozgcloud.eingang.semantik.enginebased.afm.AfmAntragstellerMapper; class AfmAntragstellerMapperTest { @@ -52,7 +50,7 @@ class AfmAntragstellerMapperTest { private AfmAntragstellerHeaderMapper antragstellerHeaderMapper; private FormData formData = FormData.builder().formData(AfmAntragstellerTestFactory.createFormDataMap()).build(); - + @DisplayName("Parse form data") @Nested class TestParseFormData { @@ -88,7 +86,8 @@ class AfmAntragstellerMapperTest { @Test @DisplayName("should map antragsteller when key starts with an uppercase letter") void shouldMapAntragstellerUppercase() { - formData = FormData.builder().formData(AfmAntragstellerTestFactory.createFormDataMap(AfmAntragstellerMapper.ANTRAGSTELLER_UPPERCASE)).build(); + formData = FormData.builder().formData(AfmAntragstellerTestFactory.createFormDataMap(AfmAntragstellerMapper.ANTRAGSTELLER_UPPERCASE)) + .build(); var parsedFormData = parseFormData(formData); @@ -99,7 +98,8 @@ class AfmAntragstellerMapperTest { @Test @DisplayName("should map only antragsteller key when both present") void shouldMapOnlyOneKey() { - var expectedAntragsteller = AfmAntragstellerTestFactory.createBuilder().anrede("anrede").vorname("firstName").nachname("lastName").build(); + var expectedAntragsteller = AfmAntragstellerTestFactory.createBuilder().anrede("anrede").vorname("firstName").nachname("lastName") + .build(); var parsedFormData = parseFormData(createFormData(expectedAntragsteller)); @@ -109,7 +109,7 @@ class AfmAntragstellerMapperTest { private FormData createFormData(Antragsteller antragsteller) { var formDataMap = AfmAntragstellerTestFactory.createMutableFormDataMap(AfmAntragstellerMapper.ANTRAGSTELLER_UPPERCASE); - var antragstelleMap = AfmAntragstellerTestFactory.createAntragstelleMap( + var antragstelleMap = AfmAntragstellerTestFactory.createPrivateAntragstelleMap( MapEntry.entry(AfmAntragstellerMapper.ANREDE, antragsteller.getAnrede()), MapEntry.entry(AfmAntragstellerMapper.VORNAME, antragsteller.getVorname()), MapEntry.entry(AfmAntragstellerMapper.NACHNAME, antragsteller.getNachname()) @@ -118,9 +118,9 @@ class AfmAntragstellerMapperTest { return FormData.builder().formData(formDataMap).build(); } - @DisplayName("map antragsteller data") + @DisplayName("map private antragsteller data") @Nested - class TestMapAntragstellerData { + class TestMapPrivateAntragstellerData { @Test void shouldMapPostfachId() { @@ -140,7 +140,8 @@ class AfmAntragstellerMapperTest { @BeforeEach void buildFormData() { - var antragstellerMap = AfmAntragstellerTestFactory.createAntragstelleMap(MapEntry.entry(NOT_MAPPED_FIELD, NOT_MAPPED_VALUE)); + var antragstellerMap = AfmAntragstellerTestFactory.createPrivateAntragstelleMap( + MapEntry.entry(NOT_MAPPED_FIELD, NOT_MAPPED_VALUE)); var formDataMap = new HashMap<String, Object>(); formDataMap.put(AfmAntragstellerMapper.ANTRAGSTELLER, antragstellerMap); @@ -176,9 +177,9 @@ class AfmAntragstellerMapperTest { } } - @DisplayName("remove fields") + @DisplayName("remove private fields") @Nested - class TestRemoveFields { + class TestRemovePrivateFields { @Test void shouldRemoveAntragsteller() { @@ -190,7 +191,8 @@ class AfmAntragstellerMapperTest { @Test @DisplayName("should remove Antragsteller when key starts with an uppercase latter") void shouldRemoveAntragstellerUppercase() { - formData = FormData.builder().formData(AfmAntragstellerTestFactory.createFormDataMap(AfmAntragstellerMapper.ANTRAGSTELLER_UPPERCASE)).build(); + formData = FormData.builder().formData(AfmAntragstellerTestFactory.createFormDataMap(AfmAntragstellerMapper.ANTRAGSTELLER_UPPERCASE)) + .build(); var parsedFormData = parseFormData(formData); @@ -207,12 +209,31 @@ class AfmAntragstellerMapperTest { private FormData createFormData() { var formDataMap = AfmAntragstellerTestFactory.createMutableFormDataMap(AfmAntragstellerMapper.ANTRAGSTELLER_UPPERCASE); - formDataMap.put(AfmAntragstellerMapper.ANTRAGSTELLER, AfmAntragstellerTestFactory.createAntragstelleMap()); + formDataMap.put(AfmAntragstellerMapper.ANTRAGSTELLER, AfmAntragstellerTestFactory.createPrivateAntragstelleMap()); return FormData.builder().formData(formDataMap).build(); } } } + @Nested + class TestMapFirmAntragstellerData { + + @Test + void shouldMapFirmAntragstellerData() { + var parsedFormData = parseFormData(createFormData()); + + assertThat(parsedFormData.getAntragsteller()).usingRecursiveComparison() + .ignoringFields("data") + .isEqualTo(AfmAntragstellerTestFactory.createFirm()); + } + + private FormData createFormData() { + var formDataMap = AfmAntragstellerTestFactory.createFormDataMap(); + formDataMap.put(AfmAntragstellerMapper.ANTRAGSTELLER, AfmAntragstellerTestFactory.createFirmAntragstelleMap()); + return FormData.builder().formData(formDataMap).build(); + } + } + private FormData parseFormData(FormData formData) { return mapper.parseFormData(formData); } diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerTestFactory.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerTestFactory.java index b127c5a0d30be66e723c7b1744378b5b613e3043..6fc16c9b5185091deed63ad81df92273c5e07364 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerTestFactory.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerTestFactory.java @@ -32,11 +32,11 @@ import java.util.UUID; import org.assertj.core.data.MapEntry; import de.ozgcloud.eingang.common.formdata.Antragsteller; -import de.ozgcloud.eingang.semantik.enginebased.afm.AfmAntragstellerMapper; public class AfmAntragstellerTestFactory { public static final String ANREDE = "Herr"; + public static final String FIRMA_NAME = "Firma X"; public static final String VORNAME = "Max"; public static final String NACHNAME = "Mustermann"; public static final String GEBURTSNAME = "Maxi"; @@ -55,6 +55,15 @@ public class AfmAntragstellerTestFactory { return createBuilder().build(); } + public static Antragsteller createFirm() { + return createBuilder() + .firmName(FIRMA_NAME) + .geburtsname(null) + .geburtsdatum(null) + .geburtsort(null) + .build(); + } + public static Antragsteller.AntragstellerBuilder createBuilder() { return Antragsteller.builder() .anrede(ANREDE) @@ -77,18 +86,18 @@ public class AfmAntragstellerTestFactory { } public static Map<String, Object> createFormDataMap(String antragstellerKey) { - return Collections.unmodifiableMap(createMutableFormDataMap(antragstellerKey)); + return createMutableFormDataMap(antragstellerKey); } public static Map<String, Object> createMutableFormDataMap(String antragstellerKey) { var map = new HashMap<String, Object>(); - map.put(antragstellerKey, createAntragstelleMap()); + map.put(antragstellerKey, createPrivateAntragstelleMap()); map.put(AfmAntragstellerMapper.POSTFACH_ID, POSTFACH_ID); return map; } @SafeVarargs - public static Map<String, Object> createAntragstelleMap(MapEntry<String, Object>... additionalEntries) { + public static Map<String, Object> createPrivateAntragstelleMap(MapEntry<String, Object>... additionalEntries) { var map = new HashMap<String, Object>(); map.put(AfmAntragstellerMapper.ANREDE, ANREDE); map.put(AfmAntragstellerMapper.VORNAME, VORNAME); @@ -107,4 +116,23 @@ public class AfmAntragstellerTestFactory { return Collections.unmodifiableMap(map); } + + @SafeVarargs + public static Map<String, Object> createFirmAntragstelleMap(MapEntry<String, Object>... additionalEntries) { + var map = new HashMap<String, Object>(); + map.put(AfmAntragstellerMapper.FIELD_FIRMA_NAME, FIRMA_NAME); + map.put(AfmAntragstellerMapper.FIELD_ANSPRECHPARTNER_ANREDE, ANREDE); + map.put(AfmAntragstellerMapper.FIELD_ANSPRECHPARTNER_VORNAME, VORNAME); + map.put(AfmAntragstellerMapper.FIELD_ANSPRECHPARTNER_NACHNAME, NACHNAME); + map.put(AfmAntragstellerMapper.EMAIL, EMAIL); + map.put(AfmAntragstellerMapper.TELEFON, TELEFON); + map.put(AfmAntragstellerMapper.FIELD_FIRMA_STRASSE, STRASSE); + map.put(AfmAntragstellerMapper.FIELD_FIRMA_HAUSNUMMER, HAUSNUMMER); + map.put(AfmAntragstellerMapper.FIELD_FIRMA_PLZ, PLZ); + map.put(AfmAntragstellerMapper.FIELD_FIRMA_STADT, ORT); + + Arrays.stream(additionalEntries).forEach(entry -> map.put(entry.getKey(), entry.getValue())); + + return Collections.unmodifiableMap(map); + } } \ No newline at end of file