diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormCycleEngineBasedAdapter.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormCycleEngineBasedAdapter.java index 1c2264615d5851c927cfa44cf07f7f7e81d37cf6..c56f0c00d098e2af63872caaf178f348bc3ca9b5 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormCycleEngineBasedAdapter.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormCycleEngineBasedAdapter.java @@ -23,14 +23,25 @@ */ package de.ozgcloud.eingang.semantik.enginebased.formcycle; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; + import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.semantik.enginebased.EngineBasedSemantikAdapter; public class FormCycleEngineBasedAdapter implements EngineBasedSemantikAdapter { + @Autowired + private List<FormcycleEngineBasedMapper> mappers; + @Override public FormData parseFormData(FormData formData) { - return formData; + var processed = formData; + for (var mapper : mappers) { + processed = mapper.parseFormData(processed); + } + return processed; } } diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormCycleEngineBasedAdapterTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormCycleEngineBasedAdapterTest.java index 09478d357c24107e7c776161ea5313c5141eceef..edd5390030a18e0818331382c3e0144726fb3de5 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormCycleEngineBasedAdapterTest.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormCycleEngineBasedAdapterTest.java @@ -24,25 +24,47 @@ package de.ozgcloud.eingang.semantik.enginebased.formcycle; import static org.assertj.core.api.Assertions.*; +import static org.mockito.Mockito.*; +import java.util.List; + +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.springframework.test.util.ReflectionTestUtils; +import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormDataTestFactory; -import de.ozgcloud.eingang.semantik.enginebased.formcycle.FormCycleEngineBasedAdapter; class FormCycleEngineBasedAdapterTest { @InjectMocks private FormCycleEngineBasedAdapter adapter; + @Mock + private FormcycleEngineBasedMapper mapper; + @Mock + private FormData formData; + + @BeforeEach + void setup() { + ReflectionTestUtils.setField(adapter, "mappers", List.of(mapper)); + } + @Test - void shouldUnprocessedData() { - var formData = FormDataTestFactory.create(); + void shouldProcessedData() { + adapter.parseFormData(formData); - var result = adapter.parseFormData(formData); + verify(mapper).parseFormData(formData); + } + + @Test + void shouldRemoveProcessedData() { + when(mapper.parseFormData(any())).thenReturn(formData); + + var result = adapter.parseFormData(FormDataTestFactory.create()); assertThat(result).isSameAs(formData); } - }