diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerHeaderMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerHeaderMapper.java index 0f808337e735facf53907a528625137260ca09a6..31e0e25657b72d4208ef1a371dbdbfd28a9ea8f0 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerHeaderMapper.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerHeaderMapper.java @@ -9,6 +9,7 @@ import java.util.Map; import org.springframework.stereotype.Component; import de.ozgcloud.eingang.common.errorhandling.TechnicalException; +import de.ozgcloud.eingang.common.formdata.Antragsteller; import de.ozgcloud.eingang.common.formdata.FormData; @Component @@ -26,7 +27,21 @@ public class AfmAntragstellerHeaderMapper { static final String KEY_ORT = "u:saml_localityname"; public FormData parseAntragstellerData(FormData formData) { - return formData; + return formData.toBuilder().antragsteller(buildAntragsteller(getHeaders(formData))).build(); + } + + Antragsteller buildAntragsteller(Map<String, Object> headers) { + return Antragsteller.builder() + .postfachId((String) headers.get(KEY_POSTFACH_ID)) + .vorname((String) headers.get(KEY_VORNAME)) + .nachname((String) headers.get(KEY_NACHNAME)) + .geburtsort((String) headers.get(KEY_GEBURTSORT)) + .email((String) headers.get(KEY_EMAIL)) + .telefon((String) headers.get(KEY_TELEFON)) + .strasse((String) headers.get(KEY_STRASSE)) + .plz((String) headers.get(KEY_PLZ)) + .ort((String) headers.get(KEY_ORT)) + .build(); } public boolean isResponsible(FormData formData) { diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerHeaderMapperTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerHeaderMapperTest.java index f659992813a66eb649b627e4d979f8e154031d0c..6b68709fdd773e68b8919c2e535c124bce73a0d2 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerHeaderMapperTest.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerHeaderMapperTest.java @@ -9,7 +9,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -19,6 +18,7 @@ import org.mockito.Mock; import org.mockito.Spy; import de.ozgcloud.eingang.common.errorhandling.TechnicalException; +import de.ozgcloud.eingang.common.formdata.AntragstellerTestFactory; import de.ozgcloud.eingang.common.formdata.FormData; class AfmAntragstellerHeaderMapperTest { @@ -30,6 +30,103 @@ class AfmAntragstellerHeaderMapperTest { @Nested class TestParseAntragstellerData { + @Test + void shouldCallGetHeaders() { + var formData = FormData.builder().build(); + doReturn(Collections.emptyMap()).when(mapper).getHeaders(any()); + + mapper.parseAntragstellerData(formData); + + verify(mapper).getHeaders(formData); + } + + @Test + void shouldCallBuildAntragsteller() { + var headerMap = AfmHeaderTestFactory.createCustomHeaderMap(); + doReturn(headerMap).when(mapper).getHeaders(any()); + + mapper.parseAntragstellerData(FormData.builder().build()); + + verify(mapper).buildAntragsteller(headerMap); + } + + @Test + void shouldSetAntragsteller() { + var antragsteller = AntragstellerTestFactory.create(); + doReturn(antragsteller).when(mapper).buildAntragsteller(any()); + + var result = mapper.parseAntragstellerData(FormData.builder().build()); + + assertThat(result.getAntragsteller()).isEqualTo(antragsteller); + } + + @Nested + class TestBuildAntragsteller { + + private Map<String, Object> headers = AfmHeaderTestFactory.createCustomHeaderMap(); + @Test + void shouldSetPostfachId() { + var result = mapper.buildAntragsteller(headers); + + assertThat(result.getPostfachId()).isEqualTo(AfmHeaderTestFactory.CUSTOM_POSTFACH_ID); + } + + @Test + void shouldSetVorname() { + var result = mapper.buildAntragsteller(headers); + + assertThat(result.getVorname()).isEqualTo(AfmHeaderTestFactory.CUSTOM_VORNAME); + } + + @Test + void shouldSetNachname() { + var result = mapper.buildAntragsteller(headers); + + assertThat(result.getNachname()).isEqualTo(AfmHeaderTestFactory.CUSTOM_NACHNAME); + } + + @Test + void shouldSetGeburtsort() { + var result = mapper.buildAntragsteller(headers); + + assertThat(result.getGeburtsort()).isEqualTo(AfmHeaderTestFactory.CUSTOM_GEBURTSORT); + } + + @Test + void shoudlSetEmail() { + var result = mapper.buildAntragsteller(headers); + + assertThat(result.getEmail()).isEqualTo(AfmHeaderTestFactory.CUSTOM_EMAIL); + } + + @Test + void shouldSetTelefon() { + var result = mapper.buildAntragsteller(headers); + + assertThat(result.getTelefon()).isEqualTo(AfmHeaderTestFactory.CUSTOM_TELEFON); + } + + @Test + void shouldSetStrasse() { + var result = mapper.buildAntragsteller(headers); + + assertThat(result.getStrasse()).isEqualTo(AfmHeaderTestFactory.CUSTOM_STRASSE); + } + + @Test + void shouldSetPlz() { + var result = mapper.buildAntragsteller(headers); + + assertThat(result.getPlz()).isEqualTo(AfmHeaderTestFactory.CUSTOM_PLZ); + } + + @Test + void shouldSetOrt() { + var result = mapper.buildAntragsteller(headers); + + assertThat(result.getOrt()).isEqualTo(AfmHeaderTestFactory.CUSTOM_ORT); + } + } } @Nested @@ -38,11 +135,6 @@ class AfmAntragstellerHeaderMapperTest { @Mock private FormData formData; - @BeforeEach - void setup() { - - } - @Test void shouldApproveResponsibility() { doReturn(true).when(mapper).isPostfachIdNotBlank(any()); @@ -83,29 +175,6 @@ class AfmAntragstellerHeaderMapperTest { assertFalse(isResponsible); } - @Nested - class TestGetHeaders { - - @Test - void shouldReturnHeaders() { - var headers = createHeaders(AfmAntragstellerHeaderMapper.KEY_POSTFACH_ID, "123"); - var formData = FormData.builder().formData(createHeaders(AfmHeaderMapper.HEADER_FIELD, headers)).build(); - - var result = mapper.getHeaders(formData); - - assertThat(result).isEqualTo(headers); - } - - @Test - void shouldReturnEmptyMapWhenNoHeaders() { - var formData = FormData.builder().build(); - - var result = mapper.getHeaders(formData); - - assertThat(result).isEmpty(); - } - } - @Nested class TestIsPostfachIdNotBlank { @@ -134,6 +203,29 @@ class AfmAntragstellerHeaderMapperTest { } } + @Nested + class TestGetHeaders { + + @Test + void shouldReturnHeaders() { + var headers = createHeaders(AfmAntragstellerHeaderMapper.KEY_POSTFACH_ID, "123"); + var formData = FormData.builder().formData(createHeaders(AfmHeaderMapper.HEADER_FIELD, headers)).build(); + + var result = mapper.getHeaders(formData); + + assertThat(result).isEqualTo(headers); + } + + @Test + void shouldReturnEmptyMapWhenNoHeaders() { + var formData = FormData.builder().build(); + + var result = mapper.getHeaders(formData); + + assertThat(result).isEmpty(); + } + } + private Map<String, Object> createHeaders(String key, Object value) { var map = new HashMap<String, Object>(); map.put(key, value);