diff --git a/common/src/test/java/de/ozgcloud/eingang/common/formdata/AntragstellerTestFactory.java b/common/src/test/java/de/ozgcloud/eingang/common/formdata/AntragstellerTestFactory.java index c3f5320bc928490b407bf0ff8a83b192566eb0d7..1f3bafc0e2c86b61357bf488d0a4304bca032b70 100644 --- a/common/src/test/java/de/ozgcloud/eingang/common/formdata/AntragstellerTestFactory.java +++ b/common/src/test/java/de/ozgcloud/eingang/common/formdata/AntragstellerTestFactory.java @@ -30,6 +30,7 @@ public class AntragstellerTestFactory { public static final String ANREDE = "Herr"; + public static final String FIRMA_NAME = "Firma X"; public static final String GEBIET_BEZEICHNUNG_KEY = "GebietBEZEICHNUNG"; public static final String GEBIET_BEZEICHNUNG_VALUE = "Schleswig"; @@ -54,6 +55,19 @@ public class AntragstellerTestFactory { return createBuilder().build(); } + public static Antragsteller createFirm() { + return createBuilder() + .firmName(FIRMA_NAME) + .geburtsname(null) + .geburtsdatum(null) + .geburtsort(null) + .hausnummer(null) + .postfachId(null) + .strasse("%s %s".formatted(STRASSE, HAUSNUMMER)) + .data(null) + .build(); + } + public static Antragsteller.AntragstellerBuilder createBuilder() { return Antragsteller.builder() .anrede(ANREDE) diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapper.java index a8d133be63359eca9db5d610c01f4bfd144f1a96..7e9abf89ddcfd882477dc7007848f937db800e5c 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapper.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapper.java @@ -1,5 +1,7 @@ package de.ozgcloud.eingang.semantik.enginebased.formcycle; +import static org.apache.commons.lang3.StringUtils.*; + import java.util.Map; import java.util.Optional; @@ -25,6 +27,7 @@ public class FormcycleAntragstellerMapper implements FormcycleEngineBasedMapper static final String KEY_ADDRESS = "tfAntragstellerAdresse"; static final String KEY_PLZ = "tfAntragstellerPLZ"; static final String KEY_ORT = "tfAntragstellerOrt"; + static final String KEY_FIRMA_NAME = "tfOrgName"; @Override public FormData parseFormData(final FormData formData) { @@ -41,19 +44,26 @@ public class FormcycleAntragstellerMapper implements FormcycleEngineBasedMapper } Antragsteller buildAntragsteller(Map<String, Object> antragstellerData) { - return Antragsteller.builder() + var firmaName = getValue(antragstellerData, KEY_FIRMA_NAME); + var antragstellerBuilder = Antragsteller.builder() + .firmName(firmaName) .anrede(getValue(antragstellerData, KEY_ANREDE)) .vorname(getValue(antragstellerData, KEY_VORNAME)) .nachname(getValue(antragstellerData, KEY_NACHNAME)) - .geburtsname(getValue(antragstellerData, KEY_GEBURTSNAME)) - .geburtsdatum(getValue(antragstellerData, KEY_GEBURTSDATUM)) - .geburtsort(getValue(antragstellerData, KEY_GEBURTSORT)) .email(getValue(antragstellerData, KEY_EMAIL)) .telefon(getValue(antragstellerData, KEY_TELEFON)) .strasse(getValue(antragstellerData, KEY_ADDRESS)) .plz(getValue(antragstellerData, KEY_PLZ)) - .ort(getValue(antragstellerData, KEY_ORT)) - .build(); + .ort(getValue(antragstellerData, KEY_ORT)); + if (isBlank(firmaName)) { + antragstellerBuilder + .geburtsname(getValue(antragstellerData, KEY_GEBURTSNAME)) + .geburtsdatum(getValue(antragstellerData, KEY_GEBURTSDATUM)) + .geburtsort(getValue(antragstellerData, KEY_GEBURTSORT)); + }else { + antragstellerBuilder.firmName(firmaName); + } + return antragstellerBuilder.build(); } String getValue(Map<String, Object> formDataMap, String key) { diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapperTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapperTest.java index ecce809dfc165ebda375212fcc659021b9f8ea76..96ba09f229caed28bbaa88174714a57f1a54755f 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapperTest.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapperTest.java @@ -7,8 +7,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Optional; -import org.assertj.core.api.Assertions; -import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; @@ -28,23 +27,9 @@ class FormcycleAntragstellerMapperTest { private static final String VALUE_KEY = "value"; private static final String LABEL_KEY = "label"; - private static final Map<String, Object> ANTRAGSTELLER_DATA = new HashMap<>(); - private static final Map<String, Object> ANTRAGSTELLER_MAP = Map.of("fsBKAllDaten", Map.of(VALUE_KEY, ANTRAGSTELLER_DATA)); - - @BeforeAll - static void fillAntragstellerData() { - ANTRAGSTELLER_DATA.put("tfAntragstellerAnrede", Map.of(VALUE_KEY, AntragstellerTestFactory.ANREDE, LABEL_KEY, "Anrede")); - ANTRAGSTELLER_DATA.put("tfAntragstellerVorname", Map.of(LABEL_KEY, "Vorname", VALUE_KEY, AntragstellerTestFactory.VORNAME)); - ANTRAGSTELLER_DATA.put("tfAntragstellerName", Map.of(VALUE_KEY, AntragstellerTestFactory.NACHNAME, LABEL_KEY, "Nachname")); - ANTRAGSTELLER_DATA.put("tfAntragstellerGeburtsname", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSNAME, LABEL_KEY, "Geburtsname")); - ANTRAGSTELLER_DATA.put("tfAntragstellerGeburtsdatum", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSDATUM, LABEL_KEY, "Geburtsdatum")); - ANTRAGSTELLER_DATA.put("tfAntragstellerGeburtsort", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSORT, LABEL_KEY, "Geburtsort")); - ANTRAGSTELLER_DATA.put("tfAntragstellerEmail", Map.of(VALUE_KEY, AntragstellerTestFactory.EMAIL, LABEL_KEY, "E-Mail")); - ANTRAGSTELLER_DATA.put("tfAntragstellerTelefon", Map.of(VALUE_KEY, AntragstellerTestFactory.TELEFON, LABEL_KEY, "Telefon")); - ANTRAGSTELLER_DATA.put("tfAntragstellerAdresse", Map.of(LABEL_KEY, "Adresse", VALUE_KEY, AntragstellerTestFactory.STRASSE + " " + AntragstellerTestFactory.HAUSNUMMER)); - ANTRAGSTELLER_DATA.put("tfAntragstellerPLZ", Map.of(LABEL_KEY, "PLZ", VALUE_KEY, AntragstellerTestFactory.PLZ)); - ANTRAGSTELLER_DATA.put("tfAntragstellerOrt", Map.of(LABEL_KEY, "Ort", VALUE_KEY, AntragstellerTestFactory.ORT)); - } + + private Map<String, Object> antragstellerData = new HashMap<>(); + private Map<String, Object> antragstellerMap = Map.of("fsBKAllDaten", Map.of(VALUE_KEY, antragstellerData)); @Nested class TestParseFormData { @@ -56,16 +41,16 @@ class FormcycleAntragstellerMapperTest { void shouldCallGetAntragsteller() { mapper.parseFormData(buildFormData()); - verify(mapper).getAntragstellerData(ANTRAGSTELLER_MAP); + verify(mapper).getAntragstellerData(antragstellerMap); } @Test void shouldCallBuildAntragsteller() { - doReturn(Optional.of(ANTRAGSTELLER_DATA)).when(mapper).getAntragstellerData(anyMap()); + doReturn(Optional.of(antragstellerData)).when(mapper).getAntragstellerData(anyMap()); mapper.parseFormData(buildFormData()); - verify(mapper).buildAntragsteller(ANTRAGSTELLER_DATA); + verify(mapper).buildAntragsteller(antragstellerData); } @Test @@ -87,7 +72,7 @@ class FormcycleAntragstellerMapperTest { } FormData buildFormData() { - return FormData.builder().formData(ANTRAGSTELLER_MAP).build(); + return FormData.builder().formData(antragstellerMap).build(); } } @@ -105,9 +90,9 @@ class FormcycleAntragstellerMapperTest { @Test void shouldReturnAntragstellerData() { - var result = mapper.getAntragstellerData(ANTRAGSTELLER_MAP); + var result = mapper.getAntragstellerData(antragstellerMap); - assertThat(result).contains(ANTRAGSTELLER_DATA); + assertThat(result).contains(antragstellerData); } } @@ -116,6 +101,8 @@ class FormcycleAntragstellerMapperTest { @Test void shouldSetAnrede() { + antragstellerData.put("tfAntragstellerAnrede", Map.of(VALUE_KEY, AntragstellerTestFactory.ANREDE, LABEL_KEY, "Anrede")); + var result = buildAntragsteller(); assertThat(result.getAnrede()).isEqualTo(AntragstellerTestFactory.ANREDE); @@ -123,6 +110,8 @@ class FormcycleAntragstellerMapperTest { @Test void shouldSetVorname() { + antragstellerData.put("tfAntragstellerVorname", Map.of(LABEL_KEY, "Vorname", VALUE_KEY, AntragstellerTestFactory.VORNAME)); + var result = buildAntragsteller(); assertThat(result.getVorname()).isEqualTo(AntragstellerTestFactory.VORNAME); @@ -130,6 +119,8 @@ class FormcycleAntragstellerMapperTest { @Test void shouldSetNachname() { + antragstellerData.put("tfAntragstellerName", Map.of(VALUE_KEY, AntragstellerTestFactory.NACHNAME, LABEL_KEY, "Nachname")); + var result = buildAntragsteller(); assertThat(result.getNachname()).isEqualTo(AntragstellerTestFactory.NACHNAME); @@ -137,6 +128,8 @@ class FormcycleAntragstellerMapperTest { @Test void shouldSetGeburtsname() { + antragstellerData.put("tfAntragstellerGeburtsname", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSNAME, LABEL_KEY, "Geburtsname")); + var result = buildAntragsteller(); assertThat(result.getGeburtsname()).isEqualTo(AntragstellerTestFactory.GEBURTSNAME); @@ -144,6 +137,8 @@ class FormcycleAntragstellerMapperTest { @Test void shouldSetGeburtsdatum() { + antragstellerData.put("tfAntragstellerGeburtsdatum", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSDATUM, LABEL_KEY, "Geburtsdatum")); + var result = buildAntragsteller(); assertThat(result.getGeburtsdatum()).isEqualTo(AntragstellerTestFactory.GEBURTSDATUM); @@ -151,6 +146,8 @@ class FormcycleAntragstellerMapperTest { @Test void shouldSetGeburtsort() { + antragstellerData.put("tfAntragstellerGeburtsort", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSORT, LABEL_KEY, "Geburtsort")); + var result = buildAntragsteller(); assertThat(result.getGeburtsort()).isEqualTo(AntragstellerTestFactory.GEBURTSORT); @@ -158,6 +155,8 @@ class FormcycleAntragstellerMapperTest { @Test void shouldSetEmail() { + antragstellerData.put("tfAntragstellerEmail", Map.of(VALUE_KEY, AntragstellerTestFactory.EMAIL, LABEL_KEY, "E-Mail")); + var result = buildAntragsteller(); assertThat(result.getEmail()).isEqualTo(AntragstellerTestFactory.EMAIL); @@ -165,6 +164,8 @@ class FormcycleAntragstellerMapperTest { @Test void shouldSetTelefon() { + antragstellerData.put("tfAntragstellerTelefon", Map.of(VALUE_KEY, AntragstellerTestFactory.TELEFON, LABEL_KEY, "Telefon")); + var result = buildAntragsteller(); assertThat(result.getTelefon()).isEqualTo(AntragstellerTestFactory.TELEFON); @@ -172,6 +173,9 @@ class FormcycleAntragstellerMapperTest { @Test void shouldSetAdresse() { + antragstellerData.put("tfAntragstellerAdresse", + Map.of(LABEL_KEY, "Adresse", VALUE_KEY, AntragstellerTestFactory.STRASSE + " " + AntragstellerTestFactory.HAUSNUMMER)); + var result = buildAntragsteller(); assertThat(result.getStrasse()).isEqualTo(AntragstellerTestFactory.STRASSE + " " + AntragstellerTestFactory.HAUSNUMMER); @@ -179,6 +183,8 @@ class FormcycleAntragstellerMapperTest { @Test void shouldSetPlz() { + antragstellerData.put("tfAntragstellerPLZ", Map.of(LABEL_KEY, "PLZ", VALUE_KEY, AntragstellerTestFactory.PLZ)); + var result = buildAntragsteller(); assertThat(result.getPlz()).isEqualTo(AntragstellerTestFactory.PLZ); @@ -186,13 +192,44 @@ class FormcycleAntragstellerMapperTest { @Test void shouldSetOrt() { + antragstellerData.put("tfAntragstellerOrt", Map.of(LABEL_KEY, "Ort", VALUE_KEY, AntragstellerTestFactory.ORT)); + var result = buildAntragsteller(); assertThat(result.getOrt()).isEqualTo(AntragstellerTestFactory.ORT); } Antragsteller buildAntragsteller() { - return mapper.buildAntragsteller(ANTRAGSTELLER_DATA); + return mapper.buildAntragsteller(antragstellerData); + } + } + + @Nested + class TestBuildFirmaAntragsteller { + + @BeforeEach + void fillAntragstellerData() { + antragstellerData.put("tfOrgName", Map.of(VALUE_KEY, AntragstellerTestFactory.FIRMA_NAME, LABEL_KEY, "Firmenname")); + antragstellerData.put("tfAntragstellerAnrede", Map.of(VALUE_KEY, AntragstellerTestFactory.ANREDE, LABEL_KEY, "Anrede")); + antragstellerData.put("tfAntragstellerVorname", Map.of(LABEL_KEY, "Vorname", VALUE_KEY, AntragstellerTestFactory.VORNAME)); + antragstellerData.put("tfAntragstellerName", Map.of(VALUE_KEY, AntragstellerTestFactory.NACHNAME, LABEL_KEY, "Nachname")); + antragstellerData.put("tfAntragstellerGeburtsname", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSNAME, LABEL_KEY, "Geburtsname")); + antragstellerData.put("tfAntragstellerGeburtsdatum", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSDATUM, LABEL_KEY, "Geburtsdatum")); + antragstellerData.put("tfAntragstellerGeburtsort", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSORT, LABEL_KEY, "Geburtsort")); + antragstellerData.put("tfAntragstellerEmail", Map.of(VALUE_KEY, AntragstellerTestFactory.EMAIL, LABEL_KEY, "E-Mail")); + antragstellerData.put("tfAntragstellerTelefon", Map.of(VALUE_KEY, AntragstellerTestFactory.TELEFON, LABEL_KEY, "Telefon")); + antragstellerData.put("tfAntragstellerAdresse", + Map.of(LABEL_KEY, "Adresse", VALUE_KEY, AntragstellerTestFactory.STRASSE + " " + AntragstellerTestFactory.HAUSNUMMER)); + antragstellerData.put("tfAntragstellerPLZ", Map.of(LABEL_KEY, "PLZ", VALUE_KEY, AntragstellerTestFactory.PLZ)); + antragstellerData.put("tfAntragstellerOrt", Map.of(LABEL_KEY, "Ort", VALUE_KEY, AntragstellerTestFactory.ORT)); } + + @Test + void shouldMapFirmaData() { + var result = mapper.buildAntragsteller(antragstellerData); + + assertThat(result).usingRecursiveComparison().isEqualTo(AntragstellerTestFactory.createFirm()); + } + } } \ No newline at end of file