From 4fb9e59ecdb46441feb74248c0971ef32a615c6c Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Wed, 21 Feb 2024 18:35:54 +0100
Subject: [PATCH] OZG-4994 OZG-5061 build query

---
 .../statistic/StatisticRemoteService.java     | 11 ++++++
 .../statistic/StatisticRemoteServiceTest.java | 36 +++++++++++++++++++
 2 files changed, 47 insertions(+)

diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticRemoteService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticRemoteService.java
index cd508d6198..149ade586a 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticRemoteService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticRemoteService.java
@@ -25,9 +25,11 @@ class StatisticRemoteService {
 	static final String COUNT_VORGANG_STATUS_RESULT_NAME_FORMAT = "countVorgangStatus_%s";
 	static final String COUNT_WIEDERVORLAGE_NEXT_FRIST_RESULT_NAME = "countWiedervorlage";
 	static final String EXISTS_WIEDERVORLAGE_OVERDUE_RESULT_NAME = "existsWiedervorlageOverdue";
+	static final String COUNT_VORGAENGE_WITH_UNREAD_MESSAGES_RESULT_NAME = "countVorgaengeWithUnreadMessages";
 
 	static final String STATUS_PATH = "Vorgang.status";
 	static final String WIEDERVORLAGE_NEXT_FRIST_PATH_TEMPLATE = "ClientAttribute.%s.nextWiedervorlageFrist";
+	static final String VORGAENGE_WITH_UNREAD_MESSAGES_PATH = "ClientAttribute.OzgCloud_NachrichtenManager.hasNewPostfachNachricht";
 
 	static final String OPERAND_TODAY_DATE = "today()";
 
@@ -93,4 +95,13 @@ class StatisticRemoteService {
 				.map(mapper::toResult)
 				.collect(Collectors.toMap(StatisticResult::getName, Function.identity()));
 	}
+
+	public GrpcVorgangStatisticQuery buildCountVorgaengeWithUnreadMessagesQuery() {
+		return GrpcVorgangStatisticQuery.newBuilder()
+				.setResultName(COUNT_VORGAENGE_WITH_UNREAD_MESSAGES_RESULT_NAME)
+				.setPath(VORGAENGE_WITH_UNREAD_MESSAGES_PATH)
+				.setGroupMethod(GroupMethod.COUNT)
+				.setOperator(Operator.UNEQUAL)
+				.build();
+	}
 }
\ No newline at end of file
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/statistic/StatisticRemoteServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/statistic/StatisticRemoteServiceTest.java
index 5716d65c21..d105d32840 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/statistic/StatisticRemoteServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/statistic/StatisticRemoteServiceTest.java
@@ -270,4 +270,40 @@ class StatisticRemoteServiceTest {
 					.hasEntrySatisfying(RESULT_NAME, statisticResult -> assertThat(statisticResult.getIntValue()).isEqualTo(RESULT_INT));
 		}
 	}
+
+	@Nested
+	class TestBuildCountVorgaengeWithUnreadMessagesQuery {
+
+		@Test
+		void shouldHaveResultName() {
+			var query = callService();
+
+			assertThat(query.getResultName()).isEqualTo(COUNT_VORGAENGE_WITH_UNREAD_MESSAGES_RESULT_NAME);
+		}
+
+		@Test
+		void shouldHavePath() {
+			var query = callService();
+
+			assertThat(query.getPath()).isEqualTo(VORGAENGE_WITH_UNREAD_MESSAGES_PATH);
+		}
+
+		@Test
+		void shouldHaveGroupingMethod() {
+			var query = callService();
+
+			assertThat(query.getGroupMethod()).isEqualTo(GroupMethod.COUNT);
+		}
+
+		@Test
+		void shouldHaveOperator() {
+			var query = callService();
+
+			assertThat(query.getOperator()).isEqualTo(Operator.UNEQUAL);
+		}
+
+		private GrpcVorgangStatisticQuery callService() {
+			return service.buildCountVorgaengeWithUnreadMessagesQuery();
+		}
+	}
 }
\ No newline at end of file
-- 
GitLab