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 new file mode 100644 index 0000000000000000000000000000000000000000..5bef93a2a74a93c891dc9359694838b8cb451c89 --- /dev/null +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerHeaderMapper.java @@ -0,0 +1,17 @@ +package de.ozgcloud.eingang.semantik.enginebased.afm; + +import org.springframework.stereotype.Component; + +import de.ozgcloud.eingang.common.formdata.FormData; + +@Component +public class AfmAntragstellerHeaderMapper { + + public FormData parseAntragstellerData(FormData formData) { + return formData; + } + + public boolean isResponsible(FormData formData) { + return false; + } +} diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerMapper.java index 68311943caa6e53772bfb97c3badb8994177d81e..4e5251da5812a678dd2234ab964de002cabd78e8 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerMapper.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmAntragstellerMapper.java @@ -31,6 +31,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import de.ozgcloud.eingang.common.formdata.Antragsteller; @@ -56,8 +57,14 @@ class AfmAntragstellerMapper implements AfmEngineBasedMapper { static final String PLZ = "sh_plz"; static final String ORT = "ort"; + @Autowired + private AfmAntragstellerHeaderMapper antragstellerHeaderMapper; + @Override public FormData parseFormData(FormData formData) { + if (antragstellerHeaderMapper.isResponsible(formData)) { + return antragstellerHeaderMapper.parseAntragstellerData(formData); + } var formDataMap = formData.getFormData(); var builder = Antragsteller.builder().postfachId(getPostfachId(formDataMap)); 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 47e58c47132daae7675ac23a34c1134764a08cc9..e40b13db45356729cd68b0fec172931b999c4c17 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 @@ -24,6 +24,8 @@ package de.ozgcloud.eingang.semantik.enginebased.afm; import static org.assertj.core.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.*; import java.util.HashMap; import java.util.UUID; @@ -33,6 +35,9 @@ 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; +import org.mockito.Mock; +import org.mockito.Mockito; import de.ozgcloud.eingang.common.formdata.Antragsteller; import de.ozgcloud.eingang.common.formdata.FormData; @@ -40,7 +45,11 @@ import de.ozgcloud.eingang.semantik.enginebased.afm.AfmAntragstellerMapper; class AfmAntragstellerMapperTest { - private AfmAntragstellerMapper mapper = new AfmAntragstellerMapper(); + @InjectMocks + private AfmAntragstellerMapper mapper; + + @Mock + private AfmAntragstellerHeaderMapper antragstellerHeaderMapper; private FormData formData = FormData.builder().formData(AfmAntragstellerTestFactory.createFormDataMap()).build(); @@ -48,6 +57,17 @@ class AfmAntragstellerMapperTest { @Nested class TestParseFormData { + @Test + void shouldCallHeaderMapper() { + FormData expectedFormData = mock(FormData.class); + when(antragstellerHeaderMapper.isResponsible(any())).thenReturn(true); + when(antragstellerHeaderMapper.parseAntragstellerData(any())).thenReturn(expectedFormData); + + var processedFormData = parseFormData(formData); + + assertThat(processedFormData).isEqualTo(expectedFormData); + } + @Test void shouldDoNothingOnNullAntragstaller() { var formData = FormData.builder().formData(new HashMap<>()).build();