From db4ac32255bd33b4f27d976bec8a4c5ef72c9490 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Fri, 19 Apr 2024 13:36:28 +0200
Subject: [PATCH] PR Kommentare bearbeitet

---
 .../antragraum/AntragraumNachrichtMapper.java |  2 +-
 .../antragraum/AntragraumGrpcServiceTest.java |  7 ++++
 .../AntragraumNachrichtMapperTest.java        |  7 ++++
 .../antragraum/AntragraumServiceTest.java     | 32 +++++++++++++++++++
 .../GrpcRueckfrageAnswerTestFactory.java      | 23 +++++++++++++
 ...endRueckfrageAnswerRequestTestFactory.java | 19 +++++++++++
 6 files changed, 89 insertions(+), 1 deletion(-)
 create mode 100644 src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcRueckfrageAnswerTestFactory.java
 create mode 100644 src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcSendRueckfrageAnswerRequestTestFactory.java

diff --git a/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java b/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java
index da60d2b..cb54984 100644
--- a/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java
+++ b/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java
@@ -49,7 +49,7 @@ interface AntragraumNachrichtMapper {
 	@Mapping(target = "direction", ignore = true)
 	@Mapping(target = "id", ignore = true)
 	@Mapping(target = "messageCode", ignore = true)
-	@Mapping(target = "messageId", ignore = true)
+	@Mapping(target = "messageId", source = "rueckfrageId")
 	@Mapping(target = "postfachAddress", ignore = true)
 	@Mapping(target = "postfachId", ignore = true)
 	@Mapping(target = "replyOption", ignore = true)
diff --git a/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcServiceTest.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcServiceTest.java
index c4a452e..968c13b 100644
--- a/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcServiceTest.java
+++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcServiceTest.java
@@ -103,6 +103,13 @@ class AntragraumGrpcServiceTest {
 			verify(mapper).toPostfachNachricht(any(GrpcRueckfrageAnswer.class));
 		}
 
+		@Test
+		void shouldCallAntragraumService() {
+			antragsraumGrpcService.sendRueckfrageAnswer(GrpcSendRueckfrageAnswerRequestTestFactory.create(), streamObserver);
+
+			verify(antragraumService).sendRueckfrageAnswer(anyString(), anyString(), any(PostfachNachricht.class));
+		}
+
 		@Test
 		void shouldCallOnNext() {
 			antragsraumGrpcService.sendRueckfrageAnswer(GrpcSendRueckfrageAnswerRequestTestFactory.create(), streamObserver);
diff --git a/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapperTest.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapperTest.java
index 8c071bb..5ff78a9 100644
--- a/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapperTest.java
+++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapperTest.java
@@ -104,6 +104,13 @@ class AntragraumNachrichtMapperTest {
 			assertThat(result.getMailBody()).isEqualTo(GrpcRueckfrageAnswerTestFactory.TEXT);
 		}
 
+		@Test
+		void shouldMapMessageId() {
+			var result = map();
+
+			assertThat(result.getMessageId()).isEqualTo(GrpcRueckfrageAnswerTestFactory.RUECKFRAGE_ID);
+		}
+
 		@Test
 		void shouldMapAttachmentIds() {
 			var result = map();
diff --git a/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumServiceTest.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumServiceTest.java
index 887e0f4..1b8cfe1 100644
--- a/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumServiceTest.java
+++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumServiceTest.java
@@ -4,6 +4,8 @@ import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
+import java.util.UUID;
+
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
@@ -13,6 +15,8 @@ import org.opensaml.saml.saml2.core.Response;
 
 import de.ozgcloud.nachrichten.NachrichtenManagerProperties;
 import de.ozgcloud.nachrichten.postfach.PersistPostfachNachrichtService;
+import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
+import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
 
 class AntragraumServiceTest {
 	@Spy
@@ -84,4 +88,32 @@ class AntragraumServiceTest {
 			verify(postfachNachrichtService).findRueckfragen(anyString());
 		}
 	}
+
+	@Nested
+	class TestSendRueckfragenAnswers {
+		static final String SAML_TOKEN = "TOKEN";
+		static final String RUECKFRAGE_ID = UUID.randomUUID().toString();
+		static final PostfachNachricht NACHRICHT = PostfachNachrichtTestFactory.create();
+
+		@Test
+		void shouldCallVerify() {
+			service.sendRueckfrageAnswer(SAML_TOKEN, RUECKFRAGE_ID, NACHRICHT);
+
+			verify(service).verifyToken(anyString());
+		}
+
+		@Test
+		void shouldCallVerifier() {
+			service.findRueckfragen(SAML_TOKEN);
+
+			verify(verifier).verify(anyString());
+		}
+
+		@Test
+		void shouldCallPostfachService() {
+			service.sendRueckfrageAnswer(SAML_TOKEN, RUECKFRAGE_ID, NACHRICHT);
+
+			verify(postfachNachrichtService).persistAnswer(anyString(), any(PostfachNachricht.class));
+		}
+	}
 }
\ No newline at end of file
diff --git a/src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcRueckfrageAnswerTestFactory.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcRueckfrageAnswerTestFactory.java
new file mode 100644
index 0000000..6c0fb28
--- /dev/null
+++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcRueckfrageAnswerTestFactory.java
@@ -0,0 +1,23 @@
+package de.ozgcloud.nachrichten.antragraum;
+
+import java.util.List;
+import java.util.UUID;
+
+import com.thedeanda.lorem.LoremIpsum;
+
+public class GrpcRueckfrageAnswerTestFactory {
+	static final String RUECKFRAGE_ID = UUID.randomUUID().toString();
+	static final String TEXT = LoremIpsum.getInstance().getParagraphs(2, 4);
+	static final List<String> ATTACHMENT_ID_LIST = List.of(UUID.randomUUID().toString());
+
+	static GrpcRueckfrageAnswer create() {
+		return createBuilder().build();
+	}
+
+	static GrpcRueckfrageAnswer.Builder createBuilder() {
+		return GrpcRueckfrageAnswer.newBuilder()
+				.setRueckfrageId(RUECKFRAGE_ID)
+				.setAnswerText(TEXT)
+				.addAllAttachmentFileId(ATTACHMENT_ID_LIST);
+	}
+}
diff --git a/src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcSendRueckfrageAnswerRequestTestFactory.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcSendRueckfrageAnswerRequestTestFactory.java
new file mode 100644
index 0000000..f1fa9bc
--- /dev/null
+++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcSendRueckfrageAnswerRequestTestFactory.java
@@ -0,0 +1,19 @@
+package de.ozgcloud.nachrichten.antragraum;
+
+import de.ozgcloud.common.test.TestUtils;
+
+public class GrpcSendRueckfrageAnswerRequestTestFactory {
+	static final String SAML_TOKEN = TestUtils.loadTextFile("SamlResponse.xml");
+	static final GrpcRueckfrageAnswer ANSWER = GrpcRueckfrageAnswerTestFactory.create();
+
+	static GrpcSendRueckfrageAnswerRequest create() {
+		return createBuilder().build();
+	}
+
+	static GrpcSendRueckfrageAnswerRequest.Builder createBuilder() {
+		return GrpcSendRueckfrageAnswerRequest.newBuilder()
+				.setAnswer(ANSWER)
+				.setSamlToken(SAML_TOKEN);
+	}
+
+}
-- 
GitLab