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 65e83929afd92af06611f0e987c3e8805de9805b..9653974555be411a25df47d6870f6658d3f5cfb3 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 @@ -34,7 +34,6 @@ import org.springframework.stereotype.Component; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormDataUtils; import de.ozgcloud.eingang.common.formdata.FormHeader; -import de.ozgcloud.eingang.common.formdata.ServiceKonto; import de.ozgcloud.eingang.semantik.enginebased.ServiceKontoBuildHelper; @Component @@ -74,36 +73,24 @@ class AfmHeaderMapper implements AfmEngineBasedMapper { .formEngineName(AFM_FORMENGINE_NAME) .build(); - createBayernIdServiceKonto(formData).or(() -> createOsiServiceKonto(formData)).ifPresent(formHeaderBuilder::setServiceKonto); + Optional.ofNullable(getNameId(formData)) + .map(nameId -> serviceKontoBuildHelper.buildOsiServiceKonto(nameId, formData)) + .ifPresent(formHeaderBuilder::setServiceKonto); return formHeaderBuilder; } - private ZonedDateTime getCreatedAt(Map<String, Object> headerDataMap) { - return ZonedDateTime.parse((String) headerDataMap.get(TIMESTAMP), DateTimeFormatter.ISO_OFFSET_DATE_TIME); - } - - Optional<ServiceKonto> createBayernIdServiceKonto(FormData formData) { - var postfachId1 = getPostfachId(formData); - return postfachId1.map(postfachId -> serviceKontoBuildHelper.buildBayernIdServiceKonto(postfachId)); - } - - Optional<String> getPostfachId(FormData formData) { - return Optional.ofNullable(getHeaderMap(formData)).map(headers -> headers.get(AfmAntragstellerHeaderMapper.KEY_POSTFACH_ID)) - .map(String.class::cast); - } - @SuppressWarnings("unchecked") - Map<String, Object> getHeaderMap(FormData formData) { + private Map<String, Object> getHeaderMap(FormData formData) { return (Map<String, Object>) formData.getFormData().get(HEADER_FIELD); } - Optional<ServiceKonto> createOsiServiceKonto(FormData formData) { - return getNameId(formData).map(nameId -> serviceKontoBuildHelper.buildOsiServiceKonto(nameId, formData)); + private ZonedDateTime getCreatedAt(Map<String, Object> headerDataMap) { + return ZonedDateTime.parse((String) headerDataMap.get(TIMESTAMP), DateTimeFormatter.ISO_OFFSET_DATE_TIME); } - private Optional<String> getNameId(FormData formData) { - return Optional.of(formData.getFormData()).map(formDataMap -> formDataMap.get(POSTFACH_NAME_ID)).map(String.class::cast); + private String getNameId(FormData formData) { + return (String) formData.getFormData().get(POSTFACH_NAME_ID); } private FormData removeMappedData(FormData formData) { 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 fd483d22da19b2da3f52bfec46715afdcde8a652..9eb5bac5995dfd209f42fd4481603c3a6cbdbee4 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 @@ -27,9 +27,6 @@ import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import java.util.Map; -import java.util.Optional; - import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -39,14 +36,13 @@ import org.mockito.Spy; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormDataUtils; -import de.ozgcloud.eingang.common.formdata.ServiceKonto; import de.ozgcloud.eingang.semantik.enginebased.ServiceKontoBuildHelper; class AfmHeaderMapperTest { @Spy @InjectMocks - private AfmHeaderMapper mapper; + private final AfmHeaderMapper mapper = new AfmHeaderMapper(); @Mock private ServiceKontoBuildHelper serviceKontoBuildHelper; @@ -110,60 +106,18 @@ class AfmHeaderMapperTest { @Nested class TestServiceKonto { - @DisplayName("OSI") - @Nested - class TestOsiServiceKonto { - @Test - void shouldCallBuildServiceKontoIfPresent() { - parseFormData(); - - verify(serviceKontoBuildHelper).buildOsiServiceKonto(any(), eq(FORM_DATA)); - } - - @Test - void shouldNotCallBuildServiceKontoIfNotExists() { - mapper.parseFormData(FormDataUtils.from(FORM_DATA).remove(AfmHeaderMapper.POSTFACH_NAME_ID).build()); + @Test + void shouldCallBuildServiceKontoIfPresent() { + parseFormData(); - verify(serviceKontoBuildHelper, never()).buildOsiServiceKonto(any(), any()); - } + verify(serviceKontoBuildHelper).buildOsiServiceKonto(any(), eq(FORM_DATA)); } - @DisplayName("BayernID") - @Nested - class TestBayernId { - - @Mock - private FormData formData; - @Mock - private ServiceKonto serviceKonto; - - @Test - void shouldCallCreateBayernIdServiceKonto() { - var formData = FormData.builder().formData(AfmHeaderTestFactory.createFormDataMapWithExtendedHeaders()).build(); - - mapper.parseFormData(formData); - - verify(mapper).createBayernIdServiceKonto(formData); - } - - @Test - void shouldReturnServiceKonto() { - doReturn(Optional.of("id")).when(mapper).getPostfachId(any()); - when(serviceKontoBuildHelper.buildBayernIdServiceKonto(any())).thenReturn(serviceKonto); - - var parsedFormData = mapper.createBayernIdServiceKonto(formData); - - assertThat(parsedFormData).isPresent().get().isEqualTo(serviceKonto); - } - - @Test - void shouldNotCallServiceKontoBuildHelper() { - doReturn(Optional.empty()).when(mapper).getPostfachId(any()); - - mapper.createBayernIdServiceKonto(formData); + @Test + void shouldNotCallBuildServiceKontoIfNotExists() { + mapper.parseFormData(FormDataUtils.from(FORM_DATA).remove(AfmHeaderMapper.POSTFACH_NAME_ID).build()); - verify(serviceKontoBuildHelper, never()).buildBayernIdServiceKonto(any()); - } + verify(serviceKontoBuildHelper, never()).buildOsiServiceKonto(any(), any()); } } @@ -198,29 +152,4 @@ class AfmHeaderMapperTest { } } } - - @Nested - class TestGetPostfachId { - - @Mock - private FormData formData; - - @Test - void shouldReturnPostfachId() { - doReturn(Map.of(AfmAntragstellerHeaderMapper.KEY_POSTFACH_ID, AfmAntragstellerTestFactory.POSTFACH_ID)).when(mapper).getHeaderMap(any()); - - var postfachId = mapper.getPostfachId(formData); - - assertThat(postfachId).isPresent().get().isEqualTo(AfmAntragstellerTestFactory.POSTFACH_ID); - } - - @Test - void shouldReturnEmpty() { - doReturn(null).when(mapper).getHeaderMap(any()); - - var postfachId = mapper.getPostfachId(formData); - - assertThat(postfachId).isEmpty(); - } - } } \ No newline at end of file diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderTestFactory.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderTestFactory.java index 4cdd6b5f7ed887dbd9841e0d844b5389b25bb366..28e807688770910087b28d5ec2a228c4f90789dd 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderTestFactory.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderTestFactory.java @@ -62,13 +62,6 @@ public class AfmHeaderTestFactory { return map; } - @SuppressWarnings("unchecked") - public static Map<String, Object> createFormDataMapWithExtendedHeaders() { - var map = new HashMap<>(createFormDataMap()); - ((Map<String, Object>) map.get(AfmHeaderMapper.HEADER_FIELD)).putAll(createCustomHeaderMap()); - return map; - } - public static Map<String, Object> createHeaderMap() { var map = new HashMap<String, Object>(); map.put(AfmHeaderMapper.ID, ID); @@ -76,6 +69,7 @@ public class AfmHeaderTestFactory { map.put(AfmHeaderMapper.FORM_ID, FORM_ID); map.put(AfmHeaderMapper.FORM, FORM); map.put(AfmHeaderMapper.SENDER, SENDER); + map.putAll(createCustomHeaderMap()); return map; }