From 119326a59a74d09d093e5a9586de7dda89da14ee Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 25 Jan 2024 16:37:33 +0100
Subject: [PATCH] OZG-4375 OZG-4790 CR

---
 .../ozgcloud/alfa/vorgang/FormDataMapper.java |  1 -
 .../alfa/vorgang/ValueKeysRemover.java        | 32 ---------
 ...zifischeErweiterungXMLTypeTestFactory.java | 10 ---
 .../alfa/vorgang/FormDataMapperTest.java      | 16 ++---
 .../alfa/vorgang/ValueKeysRemoverTest.java    | 71 -------------------
 .../alfa/vorgang/VorgangTypeCreatorTest.java  |  2 +-
 6 files changed, 6 insertions(+), 126 deletions(-)
 delete mode 100644 alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/ValueKeysRemover.java
 delete mode 100644 alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeTestFactory.java
 delete mode 100644 alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ValueKeysRemoverTest.java

diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataMapper.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataMapper.java
index 0c34564a6d..f1d47e4de2 100644
--- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataMapper.java
+++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataMapper.java
@@ -32,7 +32,6 @@ class FormDataMapper {
 	public Antragsdaten toAntragsdaten(@NotNull VorgangWithEingang vorgang) {
 		return Optional.ofNullable(vorgang.getEingang())
 				.map(Eingang::getFormData)
-				.map(ValueKeysRemover::removeValueKeys)
 				.map(this::buildAntragsdaten)
 				.orElseGet(Antragsdaten::new);
 	}
diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/ValueKeysRemover.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/ValueKeysRemover.java
deleted file mode 100644
index 76c1b7d0eb..0000000000
--- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/ValueKeysRemover.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package de.ozgcloud.alfa.vorgang;
-
-import java.util.HashMap;
-import java.util.Map;
-
-class ValueKeysRemover {
-
-	static final String VALUE_KEY = "value";
-
-	public static Map<String, Object> removeValueKeys(Map<String, Object> formData) {
-		Map<String, Object> result = new HashMap<>();
-		for (var entry : formData.entrySet()) {
-			result.put(entry.getKey(), removeValueKeysFromValue(entry.getValue()));
-		}
-		return result;
-	}
-
-	@SuppressWarnings("unchecked")
-	private static Object removeValueKeysFromValue(Object value) {
-		if (!(value instanceof Map)) {
-			return value;
-		}
-		Map<String, Object> formData = (Map<String, Object>) value;
-		return containsValueKeyAsSingleEntry(formData) ?
-				removeValueKeysFromValue(formData.get(VALUE_KEY)) :
-				removeValueKeys(formData);
-	}
-
-	private static boolean containsValueKeyAsSingleEntry(Map<String, Object> formData) {
-		return formData.containsKey(VALUE_KEY) && formData.size() == 1;
-	}
-}
diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeTestFactory.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeTestFactory.java
deleted file mode 100644
index ad287e215d..0000000000
--- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeTestFactory.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package de.ozgcloud.alfa.vorgang;
-
-import de.xoev.xdomea.AnwendungsspezifischeErweiterungXMLType;
-
-public class AnwendungsspezifischeErweiterungXMLTypeTestFactory {
-
-	public static AnwendungsspezifischeErweiterungXMLType create() {
-		return new AnwendungsspezifischeErweiterungXMLType();
-	}
-}
diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataMapperTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataMapperTest.java
index 3c0c2519b8..fd5111ad3b 100644
--- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataMapperTest.java
+++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataMapperTest.java
@@ -8,14 +8,12 @@ import java.time.ZonedDateTime;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
-import org.mockito.MockedStatic;
 import org.mockito.Spy;
 
 import de.ozgcloud.alfa.common.DateConverter;
@@ -44,17 +42,13 @@ class FormDataMapperTest {
 		private VorgangWithEingang vorgang;
 
 		@Test
-		void shouldCallBuildAntragsdaten() {
-			try (MockedStatic<ValueKeysRemover> valueKeysRemover = mockStatic(ValueKeysRemover.class)) {
-				var vorgang = VorgangWithEingangTestFactory.create();
-				Map<String, Object> formDataWithoutValueKeys = Map.of(UUID.randomUUID().toString(), "value1");
-				valueKeysRemover.when(() -> ValueKeysRemover.removeValueKeys(any())).thenReturn(formDataWithoutValueKeys);
-				doReturn(new Object()).when(formDataMapper).formatValue(any(), any());
+		void shouldCallBuildItemType() {
+			doReturn(new Object()).when(formDataMapper).formatValue(any(), any());
+			var vorgang = VorgangWithEingangTestFactory.create();
 
-				formDataMapper.toAntragsdaten(vorgang);
+			formDataMapper.toAntragsdaten(vorgang);
 
-				verify(formDataMapper).buildAntragsdaten(formDataWithoutValueKeys);
-			}
+			verify(formDataMapper).buildAntragsdaten(vorgang.getEingang().getFormData());
 		}
 
 		@Test
diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ValueKeysRemoverTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ValueKeysRemoverTest.java
deleted file mode 100644
index f9b5105db6..0000000000
--- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ValueKeysRemoverTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package de.ozgcloud.alfa.vorgang;
-
-import static org.assertj.core.api.Assertions.*;
-
-import java.util.Map;
-
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-
-public class ValueKeysRemoverTest {
-
-	@Nested
-	class TestRemoveValueKeys {
-
-		@Test
-		void shouldPreserveValueKeyWithoutParent() {
-			Map<String, Object> formData = Map.of("value", "Kiel");
-
-			var formDataWithoutValueKeys = ValueKeysRemover.removeValueKeys(formData);
-
-			assertThat(formDataWithoutValueKeys).isEqualTo(formData);
-		}
-
-		@Test
-		void shouldEliminateValueKeyWithoutSiblings() {
-			Map<String, Object> formData = Map.of("ort", Map.of("value", "Kiel"));
-			Map<String, Object> expected = Map.of("ort", "Kiel");
-
-			var formDataWithoutValueKeys = ValueKeysRemover.removeValueKeys(formData);
-
-			assertThat(formDataWithoutValueKeys).isEqualTo(expected);
-		}
-
-		@Test
-		void shouldPreserveValueKeyIfHasSiblings() {
-			Map<String, Object> formData = Map.of("ort", Map.of("value", "Kiel", "value2", "Kiel"));
-
-			var formDataWithoutValueKeys = ValueKeysRemover.removeValueKeys(formData);
-
-			assertThat(formDataWithoutValueKeys).isEqualTo(formData);
-		}
-
-		@Test
-		void shouldPreserveNonValueKeys() {
-			Map<String, Object> formData = Map.of(
-					"empfangendestelle",
-					Map.of(
-							"value",
-							Map.of(
-									"OrganisationseinheitenAuswahl",
-									Map.of(
-											"value",
-											"123456"
-									)
-							)
-					)
-			);
-			Map<String, Object> expected = Map.of(
-					"empfangendestelle",
-					Map.of(
-							"OrganisationseinheitenAuswahl",
-							"123456"
-					)
-			);
-
-			var formDataWithoutValueKeys = ValueKeysRemover.removeValueKeys(formData);
-
-			assertThat(formDataWithoutValueKeys).isEqualTo(expected);
-		}
-	}
-}
diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/VorgangTypeCreatorTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/VorgangTypeCreatorTest.java
index debdf30273..88dc05b51d 100644
--- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/VorgangTypeCreatorTest.java
+++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/VorgangTypeCreatorTest.java
@@ -45,7 +45,7 @@ class VorgangTypeCreatorTest {
 		private final IdentifikationObjektType identifikationObjekt = IdentifikationObjektTypeTestFactory.create();
 		private final AllgemeineMetadatenType allgemeineMetadaten = AllgemeineMetadatenTypeTestFactory.create();
 		private final AnwendungsspezifischeErweiterungType anwendungsspezifischeErweiterung = AnwendungsspezifischeErweiterungTypeTestFactory.create();
-		private final AnwendungsspezifischeErweiterungXMLType anwendungsspezifischeErweiterungXML = AnwendungsspezifischeErweiterungXMLTypeTestFactory.create();
+		private final AnwendungsspezifischeErweiterungXMLType anwendungsspezifischeErweiterungXML = new AnwendungsspezifischeErweiterungXMLType();
 		private final KontaktType kontakt = KontaktTypeTestFactory.create();
 
 		@BeforeEach
-- 
GitLab