diff --git a/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java b/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java index da60d2b6bc163a0aed86cbcc191ce86215de38af..cb54984efbb573241ed2aeca1fc2f08fc56d2e8e 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 c4a452ee7608bea09b1b06e4822d0bfd890e388d..968c13b46cacfbf6528a6f3ac6d750e0154c08f5 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 8c071bb3379e5f3e5939e54aeea7dcb2c3bc4b31..5ff78a92ed2d37b75e8c380ea47c87d41a50790c 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 887e0f460bca95ca85d196645e9db1a88c9bf968..1b8cfe1ed00be12d1d23043ef422878b7283f254 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 0000000000000000000000000000000000000000..6c0fb28f113bc5e179aff00d19a9e5cd5a7a6cc9 --- /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 0000000000000000000000000000000000000000..f1fa9bcfd3877d5bdc17b611f06d373feb565205 --- /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); + } + +}