From 811b29fcf33afe7e97bc54b572617eefe7ea9d75 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 25 Jul 2024 14:42:30 +0200
Subject: [PATCH] OZG-6179 add trustlevel

---
 .../antragraum/RueckfrageMapper.java          |  2 +-
 .../vorgang/NachrichtenVorgangMapper.java     |  2 ++
 .../nachrichten/common/vorgang/Vorgang.java   |  2 ++
 .../antragraum/RueckfrageMapperTest.java      |  8 ++++++++
 .../vorgang/GrpcServiceKontoTestFactory.java  | 19 +++++++++++++++++++
 .../vorgang/GrpcVorgangHeadTestFactory.java   | 15 +++++++++++++++
 .../GrpcVorgangWithEingangTestFactory.java    |  3 ++-
 .../common/vorgang/VorgangTestFactory.java    |  3 ++-
 8 files changed, 51 insertions(+), 3 deletions(-)
 create mode 100644 nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/GrpcServiceKontoTestFactory.java
 create mode 100644 nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/GrpcVorgangHeadTestFactory.java

diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/RueckfrageMapper.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/RueckfrageMapper.java
index a9dfefd..0b725a4 100644
--- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/RueckfrageMapper.java
+++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/RueckfrageMapper.java
@@ -41,7 +41,7 @@ interface RueckfrageMapper {
 	@Mapping(target = "status", expression = "java(setStatus(firstAnswerSentAt))")
 	@Mapping(target = "statusBytes", ignore = true)
 	@Mapping(target = "textBytes", ignore = true)
-	@Mapping(target = "trustLevel", ignore = true) // TODO
+	@Mapping(target = "trustLevel", source = "vorgang.trustLevel")
 	@Mapping(target = "trustLevelBytes", ignore = true)
 	@Mapping(target = "unknownFields", ignore = true)
 	@Mapping(target = "vorgangIdBytes", ignore = true)
diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/common/vorgang/NachrichtenVorgangMapper.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/common/vorgang/NachrichtenVorgangMapper.java
index 621101d..087b161 100644
--- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/common/vorgang/NachrichtenVorgangMapper.java
+++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/common/vorgang/NachrichtenVorgangMapper.java
@@ -1,6 +1,7 @@
 package de.ozgcloud.nachrichten.common.vorgang;
 
 import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
 import org.mapstruct.ReportingPolicy;
 
 import de.ozgcloud.vorgang.vorgang.GrpcVorgangWithEingang;
@@ -8,5 +9,6 @@ import de.ozgcloud.vorgang.vorgang.GrpcVorgangWithEingang;
 @Mapper(unmappedTargetPolicy = ReportingPolicy.WARN)
 interface NachrichtenVorgangMapper {
 
+	@Mapping(target = "trustLevel", source = "vorgangWithEingang.header.serviceKonto.trustLevel")
 	Vorgang fromVorgangWithEingang(GrpcVorgangWithEingang vorgangWithEingang);
 }
diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/common/vorgang/Vorgang.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/common/vorgang/Vorgang.java
index 6e3df04..713f4da 100644
--- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/common/vorgang/Vorgang.java
+++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/common/vorgang/Vorgang.java
@@ -10,4 +10,6 @@ public class Vorgang {
 	private String id;
 	private String name;
 	private String nummer;
+
+	private String trustLevel;
 }
\ No newline at end of file
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/RueckfrageMapperTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/RueckfrageMapperTest.java
index 4b247cb..74e0717 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/RueckfrageMapperTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/RueckfrageMapperTest.java
@@ -10,6 +10,7 @@ import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mapstruct.factory.Mappers;
 
+import de.ozgcloud.nachrichten.common.vorgang.GrpcServiceKontoTestFactory;
 import de.ozgcloud.nachrichten.common.vorgang.Vorgang;
 import de.ozgcloud.nachrichten.common.vorgang.VorgangTestFactory;
 import de.ozgcloud.nachrichten.postfach.PostfachAddressTestFactory;
@@ -125,6 +126,13 @@ class RueckfrageMapperTest {
 			assertThat(rueckfrage.getVorgangNummer()).isEqualTo(VorgangTestFactory.NUMMER);
 		}
 
+		@Test
+		void shouldMapTrustLevel() {
+			var rueckfrage = toRueckfrage();
+
+			assertThat(rueckfrage.getTrustLevel()).isEqualTo(GrpcServiceKontoTestFactory.TRUST_LEVEL);
+		}
+
 		@Test
 		void shouldMapAnsweredAt() {
 			var rueckfrage = toRueckfrage();
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/GrpcServiceKontoTestFactory.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/GrpcServiceKontoTestFactory.java
new file mode 100644
index 0000000..1b22916
--- /dev/null
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/GrpcServiceKontoTestFactory.java
@@ -0,0 +1,19 @@
+package de.ozgcloud.nachrichten.common.vorgang;
+
+import com.thedeanda.lorem.LoremIpsum;
+
+import de.ozgcloud.vorgang.vorgang.GrpcServiceKonto;
+
+public class GrpcServiceKontoTestFactory {
+
+	public final static String TRUST_LEVEL = LoremIpsum.getInstance().getWords(1);
+
+	public static GrpcServiceKonto create() {
+		return createBuilder().build();
+	}
+
+	public static GrpcServiceKonto.Builder createBuilder() {
+		return GrpcServiceKonto.newBuilder()
+				.setTrustLevel(TRUST_LEVEL);
+	}
+}
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/GrpcVorgangHeadTestFactory.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/GrpcVorgangHeadTestFactory.java
new file mode 100644
index 0000000..f1ccd6f
--- /dev/null
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/GrpcVorgangHeadTestFactory.java
@@ -0,0 +1,15 @@
+package de.ozgcloud.nachrichten.common.vorgang;
+
+import de.ozgcloud.vorgang.vorgang.GrpcVorgangHead;
+
+public class GrpcVorgangHeadTestFactory {
+
+	public static GrpcVorgangHead create() {
+		return createBuilder().build();
+	}
+
+	public static GrpcVorgangHead.Builder createBuilder() {
+		return GrpcVorgangHead.newBuilder()
+				.setServiceKonto(GrpcServiceKontoTestFactory.create());
+	}
+}
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/GrpcVorgangWithEingangTestFactory.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/GrpcVorgangWithEingangTestFactory.java
index cd08967..5c2edee 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/GrpcVorgangWithEingangTestFactory.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/GrpcVorgangWithEingangTestFactory.java
@@ -12,6 +12,7 @@ public class GrpcVorgangWithEingangTestFactory {
 		return GrpcVorgangWithEingang.newBuilder()
 				.setId(VorgangTestFactory.ID)
 				.setName(VorgangTestFactory.NAME)
-				.setNummer(VorgangTestFactory.NUMMER);
+				.setNummer(VorgangTestFactory.NUMMER)
+				.setHeader(GrpcVorgangHeadTestFactory.create());
 	}
 }
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/VorgangTestFactory.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/VorgangTestFactory.java
index 48ef6e4..087fe08 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/VorgangTestFactory.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/VorgangTestFactory.java
@@ -18,6 +18,7 @@ public class VorgangTestFactory {
 		return Vorgang.builder()
 				.id(ID)
 				.name(NAME)
-				.nummer(NUMMER);
+				.nummer(NUMMER)
+				.trustLevel(GrpcServiceKontoTestFactory.TRUST_LEVEL);
 	}
 }
-- 
GitLab