diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/PostfachApiFacadeService.java b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/PostfachApiFacadeService.java index 87cb29673c9d11eea6445c84abf414463976cf27..336143e3d52f052a29fb1054188599af964b3705 100644 --- a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/PostfachApiFacadeService.java +++ b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/PostfachApiFacadeService.java @@ -1,7 +1,5 @@ package de.ozgcloud.nachrichten.postfach.osiv2.transfer; -import java.util.List; -import java.util.stream.Collectors; import java.util.stream.Stream; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -28,22 +26,14 @@ public record PostfachApiFacadeService( } public Stream<PostfachNachricht> receiveMessages() { - // TODO fetch message by guid and map to PostfachNachricht - var response = messageExchangeApi.receiveMessages(100, 0) - .block(); - LOG.info("receive-message-guids: {}", String.join(", ", - response.getMessages().stream().map(message -> message.getGuid().toString()).toList())); + var response = messageExchangeApi.receiveMessages(100, 0).block(); - var stream = response.getMessages().stream() - .map(message -> fetchMessageByGuid(message)); - - return stream; + return response.getMessages().stream().map(this::fetchMessageByGuid); } PostfachNachricht fetchMessageByGuid(final MessageExchangeReceiveMessage message) { var messageReply = messageExchangeApi.getMessage(message.getGuid()).block(); - var postfachNachricht = responseMapper.toPostfachNachricht(messageReply); - return PostfachNachricht.builder().build(); + return responseMapper.toPostfachNachricht(messageReply); } } diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/PostfachApiFacadeServiceTest.java b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/PostfachApiFacadeServiceTest.java index 518a05a86e985b1a7d20e8c887c2ee8d0ff72a38..911e86ecb066594e6866d6993912d71907538a79 100644 --- a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/PostfachApiFacadeServiceTest.java +++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/PostfachApiFacadeServiceTest.java @@ -1,12 +1,9 @@ package de.ozgcloud.nachrichten.postfach.osiv2.transfer; import static de.ozgcloud.nachrichten.postfach.osiv2.factory.PostfachAddressTestFactory.*; +import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import java.util.Arrays; -import java.util.UUID; -import java.util.stream.Stream; - import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; @@ -107,6 +104,28 @@ class PostfachApiFacadeServiceTest { verify(messageExchangeApi).getMessage(any()); } + + @Test + void shouldCallResponseMapper(){ + var replyMono = Mono.just(replyMessage); + when(messageExchangeApi.getMessage(any())).thenReturn(replyMono); + when(responseMapper.toPostfachNachricht(any())).thenReturn(PostfachNachrichtTestFactory.create()); + + postfachApiFacadeService.fetchMessageByGuid(receiveMessage); + + verify(responseMapper).toPostfachNachricht(any()); + } + + @Test + void shouldReturnPostfachNachricht(){ + var replyMono = Mono.just(replyMessage); + when(messageExchangeApi.getMessage(any())).thenReturn(replyMono); + when(responseMapper.toPostfachNachricht(any())).thenReturn(PostfachNachrichtTestFactory.create()); + + var postfachNachricht = postfachApiFacadeService.fetchMessageByGuid(receiveMessage); + + assertThat(postfachNachricht).isInstanceOf(PostfachNachricht.class); + } } } \ No newline at end of file