From 376a22994c7a38eed1137fb2b47db8b397c38b12 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Wed, 8 Jun 2022 16:22:36 +0200
Subject: [PATCH] OZG-1517 use zentral FormDataMapper

---
 pluto-server/pom.xml                          |  7 +++++++
 .../pluto/vorgang/AntragstellerMapper.java    |  2 ++
 .../ozg/pluto/vorgang/EingangMapper.java      |  2 ++
 .../vorgang/AntragstellerMapperTest.java      |  2 ++
 .../ozg/pluto/vorgang/EingangMapperTest.java  |  4 +++-
 .../pluto/vorgang/GrpcEingangTestFactory.java |  2 ++
 pluto-utils/pom.xml                           | 21 +++++++++++++++++++
 .../pluto/common/grpc/GrpcFormDataMapper.java | 21 +++++++++++--------
 .../common/grpc/GrpcFormDataMapperTest.java   |  8 +++++--
 .../common/grpc/GrpcFormFieldTestFactory.java |  4 +++-
 10 files changed, 60 insertions(+), 13 deletions(-)

diff --git a/pluto-server/pom.xml b/pluto-server/pom.xml
index 13b7b781a..211e36fb3 100644
--- a/pluto-server/pom.xml
+++ b/pluto-server/pom.xml
@@ -165,6 +165,13 @@
 			<type>test-jar</type>
 			<scope>test</scope>
 		</dependency>
+		<dependency>
+			<groupId>de.itvsh.ozg.pluto</groupId>
+			<artifactId>pluto-utils</artifactId>
+			<version>${project.version}</version>
+			<type>test-jar</type>
+			<scope>test</scope>
+		</dependency>
 
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/AntragstellerMapper.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/AntragstellerMapper.java
index cbc5e64d4..d4661300b 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/AntragstellerMapper.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/AntragstellerMapper.java
@@ -5,6 +5,8 @@ import org.mapstruct.Mapping;
 import org.mapstruct.NullValueCheckStrategy;
 import org.mapstruct.NullValuePropertyMappingStrategy;
 
+import de.itvsh.kop.pluto.common.grpc.GrpcFormDataMapper;
+
 @Mapper(uses = { GrpcFormDataMapper.class }, nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE, //
 		nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
 interface AntragstellerMapper {
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/EingangMapper.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/EingangMapper.java
index 88746c780..bb6afdb4b 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/EingangMapper.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/EingangMapper.java
@@ -9,6 +9,8 @@ import org.mapstruct.Mapping;
 import org.mapstruct.NullValueCheckStrategy;
 import org.mapstruct.NullValuePropertyMappingStrategy;
 
+import de.itvsh.kop.pluto.common.grpc.GrpcFormDataMapper;
+
 @Mapper(uses = { AntragstellerMapper.class,
 		EingangHeaderMapper.class, IncomingFileMapper.class, GrpcFormDataMapper.class }, //
 		nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE, //
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/AntragstellerMapperTest.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/AntragstellerMapperTest.java
index 02bf7ec9f..9a099021e 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/AntragstellerMapperTest.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/AntragstellerMapperTest.java
@@ -9,6 +9,8 @@ import org.mapstruct.factory.Mappers;
 import org.mockito.InjectMocks;
 import org.mockito.Spy;
 
+import de.itvsh.kop.pluto.common.grpc.GrpcFormDataMapper;
+
 class AntragstellerMapperTest {
 
 	@InjectMocks
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/EingangMapperTest.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/EingangMapperTest.java
index 978d8e8f2..e515edfec 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/EingangMapperTest.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/EingangMapperTest.java
@@ -1,6 +1,6 @@
 package de.itvsh.ozg.pluto.vorgang;
 
-import static de.itvsh.ozg.pluto.vorgang.GrpcSubFormTestFactory.*;
+import static de.itvsh.kop.pluto.common.grpc.GrpcSubFormTestFactory.*;
 import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
@@ -19,6 +19,8 @@ import org.mockito.Mock;
 import org.mockito.Spy;
 import org.springframework.test.util.ReflectionTestUtils;
 
+import de.itvsh.kop.pluto.common.grpc.GrpcFormDataMapper;
+import de.itvsh.kop.pluto.common.grpc.GrpcSubFormTestFactory;
 import de.itvsh.ozg.pluto.files.FileIdMapper;
 
 class EingangMapperTest {
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/GrpcEingangTestFactory.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/GrpcEingangTestFactory.java
index a0de936ab..c109aafa4 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/GrpcEingangTestFactory.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/GrpcEingangTestFactory.java
@@ -2,6 +2,8 @@ package de.itvsh.ozg.pluto.vorgang;
 
 import java.util.UUID;
 
+import de.itvsh.kop.pluto.common.grpc.GrpcSubFormTestFactory;
+
 public class GrpcEingangTestFactory {
 
 	public static final String ID = UUID.randomUUID().toString();
diff --git a/pluto-utils/pom.xml b/pluto-utils/pom.xml
index 5ec6276cb..93b26b685 100644
--- a/pluto-utils/pom.xml
+++ b/pluto-utils/pom.xml
@@ -48,6 +48,16 @@
 			<artifactId>junit-jupiter-params</artifactId>
 			<scope>test</scope>
 		</dependency>
+		<dependency>
+			<groupId>org.mockito</groupId>
+			<artifactId>mockito-core</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.mockito</groupId>
+			<artifactId>mockito-junit-jupiter</artifactId>
+			<scope>test</scope>
+		</dependency>
 		<dependency>
 			<groupId>org.assertj</groupId>
 			<artifactId>assertj-core</artifactId>
@@ -57,6 +67,17 @@
 
 	<build>
 		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<executions>
+					<execution>
+						<goals>
+							<goal>test-jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-compiler-plugin</artifactId>
diff --git a/pluto-utils/src/main/java/de/itvsh/kop/pluto/common/grpc/GrpcFormDataMapper.java b/pluto-utils/src/main/java/de/itvsh/kop/pluto/common/grpc/GrpcFormDataMapper.java
index 33a8d6c26..1dc41f771 100644
--- a/pluto-utils/src/main/java/de/itvsh/kop/pluto/common/grpc/GrpcFormDataMapper.java
+++ b/pluto-utils/src/main/java/de/itvsh/kop/pluto/common/grpc/GrpcFormDataMapper.java
@@ -1,4 +1,4 @@
-package de.itvsh.ozg.pluto.vorgang;
+package de.itvsh.kop.pluto.common.grpc;
 
 import java.util.Collection;
 import java.util.HashMap;
@@ -7,7 +7,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Objects;
-import java.util.stream.Collectors;
 
 import org.apache.commons.lang3.tuple.Pair;
 import org.mapstruct.CollectionMappingStrategy;
@@ -16,12 +15,16 @@ import org.mapstruct.NullValueCheckStrategy;
 import org.mapstruct.NullValuePropertyMappingStrategy;
 import org.mapstruct.ReportingPolicy;
 
+import de.itvsh.ozg.pluto.vorgang.GrpcFormData;
+import de.itvsh.ozg.pluto.vorgang.GrpcFormField;
+import de.itvsh.ozg.pluto.vorgang.GrpcSubForm;
+
 @Mapper(unmappedTargetPolicy = ReportingPolicy.WARN, //
 		unmappedSourcePolicy = ReportingPolicy.WARN, //
 		nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE, //
 		nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, //
 		collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED)
-interface GrpcFormDataMapper {
+public interface GrpcFormDataMapper {
 
 	default GrpcFormData mapToFormData(Map<String, Object> formData) {
 		return GrpcFormData.newBuilder()
@@ -34,7 +37,7 @@ interface GrpcFormDataMapper {
 	default List<GrpcFormField> mapToAllFields(Map<String, Object> formData) {
 		return formData.entrySet().stream().filter(entry -> entry.getValue() instanceof String)//
 				.map(entry -> mapToField(entry.getKey(), entry.getValue().toString()))//
-				.collect(Collectors.toList());
+				.toList();
 	}
 
 	default List<GrpcFormField> mapStringListsToFields(Map<String, Object> formData) {
@@ -42,7 +45,7 @@ interface GrpcFormDataMapper {
 				.filter(entry -> entry.getValue() instanceof List)
 				.map(this::mapListStringElementsToFormFields)
 				.flatMap(List::stream)
-				.collect(Collectors.toList());
+				.toList();
 	}
 
 	@SuppressWarnings("unchecked")
@@ -51,7 +54,7 @@ interface GrpcFormDataMapper {
 				.filter(String.class::isInstance)
 				.map(String.class::cast)
 				.map(e -> mapToField(entry.getKey(), e))
-				.collect(Collectors.toList());
+				.toList();
 	}
 
 	default List<GrpcSubForm> mapObjectListsToFields(Map<String, Object> formData) {
@@ -59,7 +62,7 @@ interface GrpcFormDataMapper {
 				.filter(entry -> entry.getValue() instanceof List)
 				.map(this::mapListObjectElementsToFormFields)
 				.flatMap(List::stream)
-				.collect(Collectors.toList());
+				.toList();
 	}
 
 	@SuppressWarnings("unchecked")
@@ -68,7 +71,7 @@ interface GrpcFormDataMapper {
 				.filter(Map.class::isInstance)
 				.map(Map.class::cast)
 				.map(e -> buildSubForm(entry.getKey(), e))
-				.collect(Collectors.toList());
+				.toList();
 	}
 
 	@SuppressWarnings("unchecked")
@@ -76,7 +79,7 @@ interface GrpcFormDataMapper {
 		return formData.entrySet().stream()
 				.filter(entry -> entry.getValue() instanceof Map)
 				.map(entry -> buildSubForm(entry.getKey(), (Map<String, Object>) entry.getValue()))
-				.collect(Collectors.toList());
+				.toList();
 	}
 
 	default GrpcSubForm buildSubForm(String name, Map<String, Object> map) {
diff --git a/pluto-utils/src/test/java/de/itvsh/kop/pluto/common/grpc/GrpcFormDataMapperTest.java b/pluto-utils/src/test/java/de/itvsh/kop/pluto/common/grpc/GrpcFormDataMapperTest.java
index 562ddbf46..6ad0cd460 100644
--- a/pluto-utils/src/test/java/de/itvsh/kop/pluto/common/grpc/GrpcFormDataMapperTest.java
+++ b/pluto-utils/src/test/java/de/itvsh/kop/pluto/common/grpc/GrpcFormDataMapperTest.java
@@ -1,4 +1,4 @@
-package de.itvsh.ozg.pluto.vorgang;
+package de.itvsh.kop.pluto.common.grpc;
 
 import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
@@ -17,6 +17,10 @@ import org.mapstruct.factory.Mappers;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 
+import de.itvsh.ozg.pluto.vorgang.GrpcFormData;
+import de.itvsh.ozg.pluto.vorgang.GrpcFormField;
+import de.itvsh.ozg.pluto.vorgang.GrpcSubForm;
+
 class GrpcFormDataMapperTest {
 
 	@InjectMocks
@@ -27,7 +31,7 @@ class GrpcFormDataMapperTest {
 
 	@BeforeEach
 	void mockMapperReturnValues() {
-		lenient().when(grpcFormDataMapper.mapToFormData(any(Map.class)))
+		lenient().when(grpcFormDataMapper.mapToFormData(anyMap()))
 				.thenReturn(GrpcFormData.newBuilder().addField(GrpcFormFieldTestFactory.create()).build());
 	}
 
diff --git a/pluto-utils/src/test/java/de/itvsh/kop/pluto/common/grpc/GrpcFormFieldTestFactory.java b/pluto-utils/src/test/java/de/itvsh/kop/pluto/common/grpc/GrpcFormFieldTestFactory.java
index 0abb2fbee..8fe4feb11 100644
--- a/pluto-utils/src/test/java/de/itvsh/kop/pluto/common/grpc/GrpcFormFieldTestFactory.java
+++ b/pluto-utils/src/test/java/de/itvsh/kop/pluto/common/grpc/GrpcFormFieldTestFactory.java
@@ -1,4 +1,6 @@
-package de.itvsh.ozg.pluto.vorgang;
+package de.itvsh.kop.pluto.common.grpc;
+
+import de.itvsh.ozg.pluto.vorgang.GrpcFormField;
 
 public class GrpcFormFieldTestFactory {
 
-- 
GitLab