From 4b917a9bd80d91e6edc7748dbb864265462de89b Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Fri, 26 Jan 2024 19:24:56 +0100
Subject: [PATCH] OZG-4693 apply mappers in engine based adapter

---
 .../FormCycleEngineBasedAdapter.java          | 13 +++++++-
 .../FormCycleEngineBasedAdapterTest.java      | 32 ++++++++++++++++---
 2 files changed, 39 insertions(+), 6 deletions(-)

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 1c2264615..c56f0c00d 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 09478d357..edd539003 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);
 	}
-
 }
-- 
GitLab