From 298ee563abfbf52ba19240aec2bb6c182b0740d5 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Fri, 11 Oct 2024 09:42:23 +0200
Subject: [PATCH] OZG-6842 Refacore OzgCloudVorgangQueryMapper

---
 .../grpc/OzgCloudVorgangQueryMapper.java      | 14 +++++++----
 .../grpc/OzgCloudVorgangQueryMapperTest.java  | 25 +++++++++++--------
 2 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangQueryMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangQueryMapper.java
index 26f9482..41117bb 100644
--- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangQueryMapper.java
+++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangQueryMapper.java
@@ -19,10 +19,7 @@ public interface OzgCloudVorgangQueryMapper {
 
 	default GrpcQuery toGrpc(OzgCloudVorgangQuery query) {
 		var queryBuilder = GrpcQuery.newBuilder();
-		query.getAktenzeichen().map(this::toAktenzeichenExpression).ifPresent(queryBuilder::addExpressions);
-		query.getForm().map(this::toFormExpression).ifPresent(queryBuilder::addExpressions);
-		query.getStatus().map(this::toStatusExpression).ifPresent(queryBuilder::addExpressions);
-		query.getOrganisationsEinheitId().map(this::toOrganisationsEinheitIdExpression).ifPresent(queryBuilder::addExpressions);
+		addPropertiesToExpressions(query, queryBuilder);
 
 		if (queryBuilder.getExpressionsList().isEmpty()) {
 			return query.getQuery().map(this::nestedQueryToGrpc).orElseGet(queryBuilder::build);
@@ -32,6 +29,13 @@ public interface OzgCloudVorgangQueryMapper {
 		return queryBuilder.setLogicalOperator(GrpcLogicalOperator.AND).build();
 	}
 
+	private void addPropertiesToExpressions(OzgCloudVorgangQuery query, GrpcQuery.Builder queryBuilder) {
+		query.getAktenzeichen().map(this::toAktenzeichenExpression).ifPresent(queryBuilder::addExpressions);
+		query.getForm().map(this::toFormExpression).ifPresent(queryBuilder::addExpressions);
+		query.getStatus().map(this::toStatusExpression).ifPresent(queryBuilder::addExpressions);
+		query.getOrganisationsEinheitId().map(this::toOrganisationsEinheitIdExpression).ifPresent(queryBuilder::addExpressions);
+	}
+
 	private GrpcVorgangQueryExpression toAktenzeichenExpression(String aktenzeichen) {
 		return getEqualExpressionBuilder()
 				.setPath("aktenzeichen")
@@ -87,5 +91,5 @@ public interface OzgCloudVorgangQueryMapper {
 	@Mapping(target = "expressionsOrBuilderList", ignore = true)
 
 	@Mapping(target = "expressionsList", source = "expressions")
-	GrpcQuery nestedQueryToGrpc(Query query1);
+	GrpcQuery nestedQueryToGrpc(Query query);
 }
diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangQueryMapperTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangQueryMapperTest.java
index 124cbc3..3678a34 100644
--- a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangQueryMapperTest.java
+++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangQueryMapperTest.java
@@ -11,6 +11,7 @@ import org.mapstruct.factory.Mappers;
 
 import de.ozgcloud.apilib.vorgang.FormIdentificationTestFactory;
 import de.ozgcloud.apilib.vorgang.OzgCloudVorgangQuery;
+import de.ozgcloud.apilib.vorgang.OzgCloudVorgangQuery.Query;
 import de.ozgcloud.apilib.vorgang.OzgCloudVorgangQueryTestFactory;
 import de.ozgcloud.apilib.vorgang.QueryTestFactory;
 import de.ozgcloud.vorgang.common.GrpcQueryOperator;
@@ -70,11 +71,11 @@ class OzgCloudVorgangQueryMapperTest {
 		@Nested
 		class OnNestedQueryAndOptionals {
 
-			private final OzgCloudVorgangQuery query = OzgCloudVorgangQueryTestFactory.create();
+			private final OzgCloudVorgangQuery.OzgCloudVorgangQueryBuilder queryBuilder = OzgCloudVorgangQueryTestFactory.createBuilder();
 
 			@Test
 			void shouldMapToGrpcQuery() {
-				var grpcQuery = mapper.toGrpc(query);
+				var grpcQuery = mapper.toGrpc(queryBuilder.build());
 
 				assertThat(grpcQuery).usingRecursiveComparison().isEqualTo(GrpcQueryTestFactory.createBuilder().clearExpressions()
 						.addAllExpressions(List.of(aktenzeichenExpression, formExpression, statusExpression, organisationsEinheitIdExpression))
@@ -85,11 +86,11 @@ class OzgCloudVorgangQueryMapperTest {
 
 			@Test
 			void shouldMapToDoubleNestedGrpcQuery() {
-				var grpcQuery = mapper.toGrpc(OzgCloudVorgangQueryTestFactory.createBuilder()
-						.query(Optional.of(QueryTestFactory.createBuilder()
-								.nestedQuery(QueryTestFactory.create())
-								.build()))
-						.build());
+				var nestedQuery = QueryTestFactory.createBuilder()
+						.nestedQuery(QueryTestFactory.create())
+						.build();
+
+				var grpcQuery = mapper.toGrpc(queryBuilder.query(Optional.of(nestedQuery)).build());
 
 				assertThat(grpcQuery).usingRecursiveComparison().isEqualTo(GrpcQueryTestFactory.createBuilder().clearExpressions()
 						.addAllExpressions(List.of(aktenzeichenExpression, formExpression, statusExpression, organisationsEinheitIdExpression))
@@ -103,7 +104,7 @@ class OzgCloudVorgangQueryMapperTest {
 		}
 
 		@Nested
-		class OnOnlyNestedQuery {
+		class OnNoExplicitProperties {
 			private final OzgCloudVorgangQuery.OzgCloudVorgangQueryBuilder queryBuilder = OzgCloudVorgangQueryTestFactory.createBuilder()
 					.aktenzeichen(Optional.empty())
 					.form(Optional.empty())
@@ -119,9 +120,11 @@ class OzgCloudVorgangQueryMapperTest {
 
 			@Test
 			void shouldMapToNestedGrpcQuery() {
-				var grpcQuery = mapper.toGrpc(queryBuilder.query(Optional.of(QueryTestFactory.createBuilder()
-						.nestedQuery(QueryTestFactory.create()).build()))
-						.build());
+				Query nestedQuery = QueryTestFactory.createBuilder()
+						.nestedQuery(QueryTestFactory.create())
+						.build();
+
+				var grpcQuery = mapper.toGrpc(queryBuilder.query(Optional.of(nestedQuery)).build());
 
 				assertThat(grpcQuery).usingRecursiveComparison().isEqualTo(GrpcQueryTestFactory.createBuilder()
 						.setNestedQuery(GrpcQueryTestFactory.create())
-- 
GitLab