diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteService.java b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteService.java index 8d34d7d340ea2e3c2306864e395551e2a7b9c43b..de16ed8fbb8b0295b12c39f5cfed2fd574b17682 100644 --- a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteService.java +++ b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteService.java @@ -5,6 +5,7 @@ import java.util.stream.Stream; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; import de.ozgcloud.nachrichten.postfach.PostfachRemoteService; import de.ozgcloud.nachrichten.postfach.osiv2.exception.Osi2ExceptionHandler; +import de.ozgcloud.nachrichten.postfach.osiv2.exception.Osi2PostfachException; import de.ozgcloud.nachrichten.postfach.osiv2.transfer.Osi2PostfachService; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -23,7 +24,7 @@ public class OsiPostfachRemoteService implements PostfachRemoteService { try { osi2PostfachService.sendMessage(nachricht); } catch (RuntimeException e) { - throw exceptionHandler.derivePostfachException(e); + throw new Osi2PostfachException("sendMessage failed!", exceptionHandler.deriveMessageCode(e), e); } } @@ -32,7 +33,7 @@ public class OsiPostfachRemoteService implements PostfachRemoteService { try { return osi2PostfachService.receiveMessages(); } catch (RuntimeException e) { - throw exceptionHandler.derivePostfachException(e); + throw new Osi2PostfachException("getAllMessages failed!", exceptionHandler.deriveMessageCode(e), e); } } @@ -41,7 +42,7 @@ public class OsiPostfachRemoteService implements PostfachRemoteService { try { osi2PostfachService.deleteMessage(messageId); } catch (RuntimeException e) { - throw exceptionHandler.derivePostfachException(e); + throw new Osi2PostfachException("deleteMessage failed!", exceptionHandler.deriveMessageCode(e), e); } } diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/exception/Osi2ExceptionHandler.java b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/exception/Osi2ExceptionHandler.java index f0adabf5304149ab9f563e304ceca419d61b8d83..1c1dc738f525a78b9abe407827e93676b7ef0717 100644 --- a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/exception/Osi2ExceptionHandler.java +++ b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/exception/Osi2ExceptionHandler.java @@ -13,25 +13,11 @@ import de.ozgcloud.nachrichten.postfach.osiv2.ServiceIfOsi2Enabled; @ServiceIfOsi2Enabled public class Osi2ExceptionHandler { - static final String UNEXPECTED_ERROR_MESSAGE = "An unexpected error occurred. Please report this to the osiv2-postfach maintainers."; - - public Osi2PostfachException derivePostfachException(RuntimeException exception) { - if (exception instanceof Osi2RuntimeException osi2RuntimeException) { - return derivePostfachExceptionFromOsi2PostfachException(osi2RuntimeException); - } - return new Osi2PostfachException(UNEXPECTED_ERROR_MESSAGE, PostfachMessageCode.PROCESS_FAILED_MESSAGE_CODE, exception); - } - - Osi2PostfachException derivePostfachExceptionFromOsi2PostfachException(Osi2RuntimeException osi2RuntimeException) { - var cause = osi2RuntimeException.getCause(); - return new Osi2PostfachException(osi2RuntimeException.getMessage(), deriveMessageCode(cause), cause); - } - - PostfachMessageCode deriveMessageCode(@Nullable Throwable cause) { - if (cause instanceof RestClientResponseException restClientResponseException) { + public PostfachMessageCode deriveMessageCode(@Nullable RuntimeException exception) { + if (exception instanceof RestClientResponseException restClientResponseException) { return deriveMessageCodeFromRestClientResponseException(restClientResponseException); } - if (cause instanceof ResourceAccessException) { + if (exception instanceof ResourceAccessException) { return PostfachMessageCode.SERVER_CONNECTION_FAILED_MESSAGE_CODE; } // TODO KOP-3021 add message code for unsafe upload file diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2QuarantineService.java b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2QuarantineService.java index b3fefcb27aec1d1f1e80e18ca5776676836eb761..ea638e32961c045f1f31b34ad4b2b6dab9f0d432 100644 --- a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2QuarantineService.java +++ b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2QuarantineService.java @@ -79,8 +79,6 @@ public class Osi2QuarantineService { .build(); } - - synchronized boolean checkVirusScanCompleted(List<Osi2FileUpload> osi2FileMetadata) { // TODO ... return true; @@ -90,10 +88,10 @@ public class Osi2QuarantineService { try { waitUntil(() -> checkVirusScanCompleted(osi2FileMetadata), POLLING_INTERVAL, POLLING_TIMEOUT); } catch (ExecutionException e) { - if (e.getCause() instanceof Osi2RuntimeException osi2RuntimeException) { - throw osi2RuntimeException; + if (e.getCause() instanceof RuntimeException runtimeException) { + throw runtimeException; } - throw new IllegalStateException("Unexpected exception Expect the scan to complete successfully!", e.getCause()); + throw new IllegalStateException("Unexpected exception: Expect the scan to complete successfully!", e.getCause()); } catch (TimeoutException e) { throw new Osi2RuntimeException("Expect the scan to complete after %d seconds!".formatted(POLLING_TIMEOUT.getSeconds()), e); } catch (InterruptedException e) { 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 6266fa60d4e3c3e893c1cdb3fba2ef095842375a..476b3c5cd7e69dd7e8bfadbd99a3f1fed49f8676 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 @@ -10,7 +10,6 @@ import org.springframework.core.io.AbstractResource; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; import de.ozgcloud.nachrichten.postfach.osiv2.ServiceIfOsi2Enabled; import de.ozgcloud.nachrichten.postfach.osiv2.config.Osi2PostfachProperties; -import de.ozgcloud.nachrichten.postfach.osiv2.exception.Osi2RuntimeException; import de.ozgcloud.nachrichten.postfach.osiv2.gen.api.MessageExchangeApi; import de.ozgcloud.nachrichten.postfach.osiv2.gen.api.QuarantineApi; import de.ozgcloud.nachrichten.postfach.osiv2.model.FileChunkInfo; @@ -30,14 +29,6 @@ public class PostfachApiFacadeService { private final Osi2PostfachProperties.ApiConfiguration apiConfiguration; public void sendMessage(PostfachNachricht nachricht, List<Osi2FileUpload> attachments) { - try { - sendMessageRaw(nachricht, attachments); - } catch (RuntimeException e) { - throw new Osi2RuntimeException("sendMessage failed!", e); - } - } - - void sendMessageRaw(PostfachNachricht nachricht, List<Osi2FileUpload> attachments) { messageExchangeApi.sendMessage( requestMapper.mapMailboxId(nachricht), requestMapper.mapOutSendMessageRequestV2(nachricht, attachments) @@ -45,14 +36,6 @@ public class PostfachApiFacadeService { } public <T extends AbstractResource> void uploadChunk(FileChunkInfo chunkInfo, T chunkResource) { - try { - uploadChunkRaw(chunkInfo, chunkResource); - } catch (RuntimeException e) { - throw new Osi2RuntimeException("uploadChunk failed!", e); - } - } - - <T extends AbstractResource> void uploadChunkRaw(FileChunkInfo chunkInfo, T chunkResource) { quarantineApi.uploadChunk( requestMapper.mapDomainChunkMetaData(chunkInfo), apiConfiguration.getTenant(), @@ -62,55 +45,23 @@ public class PostfachApiFacadeService { } public boolean checkUploadSuccessful(final String messageId) { - try { - return checkUploadSuccessfulRaw(messageId); - } catch (RuntimeException e) { - throw new Osi2RuntimeException("checkUploadSuccessful failed!", e); - } - } - - boolean checkUploadSuccessfulRaw(final String messageId) { return responseMapper.isSafe( quarantineApi.getUploadStatus(UUID.fromString(messageId)) ); } public List<String> fetchPendingMessageIds() { - try { - return fetchPendingMessageIdsRaw(); - } catch (RuntimeException e) { - throw new Osi2RuntimeException("fetchPendingMessageIds failed!", e); - } - } - - List<String> fetchPendingMessageIdsRaw() { return responseMapper.toMessageIds( messageExchangeApi.receiveMessages(MAX_NUMBER_RECEIVED_MESSAGES, 0) ); } public PostfachNachricht fetchMessageById(final String messageId) { - try { - return fetchMessageByIdRaw(messageId); - } catch (RuntimeException e) { - throw new Osi2RuntimeException("fetchMessageById failed!", e); - } - } - - PostfachNachricht fetchMessageByIdRaw(final String messageId) { var messageReply = messageExchangeApi.getMessage(UUID.fromString(messageId)); return responseMapper.toPostfachNachricht(messageReply); } public void deleteMessage(final String messageId) { - try { - deleteMessageRaw(messageId); - } catch (RuntimeException e) { - throw new Osi2RuntimeException("deleteMessage failed!", e); - } - } - - void deleteMessageRaw(final String messageId) { messageExchangeApi.deleteMessage(UUID.fromString(messageId)); } } diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceTest.java b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceTest.java index 6c95d87f8b300c0e7108738d7793a95be5475551..afb85eaba49edf85af80490f9677cea5684c652e 100644 --- a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceTest.java +++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceTest.java @@ -13,9 +13,9 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; +import de.ozgcloud.nachrichten.postfach.PostfachMessageCode; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; import de.ozgcloud.nachrichten.postfach.osiv2.exception.Osi2ExceptionHandler; -import de.ozgcloud.nachrichten.postfach.osiv2.exception.Osi2PostfachException; import de.ozgcloud.nachrichten.postfach.osiv2.factory.PostfachNachrichtTestFactory; import de.ozgcloud.nachrichten.postfach.osiv2.transfer.Osi2PostfachService; @@ -38,6 +38,8 @@ class OsiPostfachRemoteServiceTest { .subject("Nachricht 2") .build(); + private final PostfachMessageCode postfachMessageCode = PostfachMessageCode.PROCESS_FAILED_MESSAGE_CODE; + @DisplayName("send message") @Nested class TestSendMessage { @@ -54,12 +56,12 @@ class OsiPostfachRemoteServiceTest { @Test void shouldThrowOsiPostfachExceptionOnRuntimeException() { var runtimeException = createRuntimeException(); - var osi2PostfachException = createOsi2PostfachException(); doThrow(runtimeException).when(osi2PostfachService).sendMessage(nachricht1); - when(exceptionHandler.derivePostfachException(runtimeException)).thenReturn(osi2PostfachException); + when(exceptionHandler.deriveMessageCode(runtimeException)).thenReturn(postfachMessageCode); assertThatThrownBy(() -> osiPostfachRemoteService.sendMessage(nachricht1)) - .isEqualTo(osi2PostfachException); + .hasFieldOrPropertyWithValue("messageCode", postfachMessageCode) + .hasCause(runtimeException); } } @@ -82,12 +84,12 @@ class OsiPostfachRemoteServiceTest { @Test void shouldThrowOsiPostfachExceptionOnRuntimeException() { var runtimeException = createRuntimeException(); - var osi2PostfachException = createOsi2PostfachException(); doThrow(runtimeException).when(osi2PostfachService).receiveMessages(); - when(exceptionHandler.derivePostfachException(runtimeException)).thenReturn(osi2PostfachException); + when(exceptionHandler.deriveMessageCode(runtimeException)).thenReturn(postfachMessageCode); assertThatThrownBy(() -> osiPostfachRemoteService.getAllMessages()) - .isEqualTo(osi2PostfachException); + .hasFieldOrPropertyWithValue("messageCode", postfachMessageCode) + .hasCause(runtimeException); } } @@ -107,12 +109,12 @@ class OsiPostfachRemoteServiceTest { @Test void shouldThrowOsiPostfachExceptionOnRuntimeException() { var runtimeException = createRuntimeException(); - var osi2PostfachException = createOsi2PostfachException(); doThrow(runtimeException).when(osi2PostfachService).deleteMessage(any()); - when(exceptionHandler.derivePostfachException(runtimeException)).thenReturn(osi2PostfachException); + when(exceptionHandler.deriveMessageCode(runtimeException)).thenReturn(postfachMessageCode); assertThatThrownBy(() -> osiPostfachRemoteService.deleteMessage(MESSAGE_ID_1)) - .isEqualTo(osi2PostfachException); + .hasFieldOrPropertyWithValue("messageCode", postfachMessageCode) + .hasCause(runtimeException); } } @@ -144,7 +146,4 @@ class OsiPostfachRemoteServiceTest { return new RuntimeException(); } - private Osi2PostfachException createOsi2PostfachException() { - return new Osi2PostfachException("abc", null, null); - } } \ No newline at end of file diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/exception/Osi2ExceptionHandlerTest.java b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/exception/Osi2ExceptionHandlerTest.java index 446c19b95c74b43f245ad896cc253f2c41aefe7f..8d0256f3903ff54f0080329e40652b9b39e7b9de 100644 --- a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/exception/Osi2ExceptionHandlerTest.java +++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/exception/Osi2ExceptionHandlerTest.java @@ -1,13 +1,11 @@ package de.ozgcloud.nachrichten.postfach.osiv2.exception; import static de.ozgcloud.nachrichten.postfach.PostfachMessageCode.*; -import static de.ozgcloud.nachrichten.postfach.osiv2.exception.Osi2ExceptionHandler.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; import java.io.IOException; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -22,93 +20,6 @@ class Osi2ExceptionHandlerTest { @Spy private Osi2ExceptionHandler handler; - @DisplayName("derive postfach exception") - @Nested - class TestDerivePostfachException { - - @Mock - Osi2RuntimeException osi2RuntimeException; - - @Mock - Osi2PostfachException postfachException; - - @Mock - RuntimeException exception; - - @DisplayName("should derive postfach exception from osi2 postfach exception") - @Test - void shouldDerivePostfachExceptionFromOsi2PostfachException() { - doReturn(postfachException).when(handler).derivePostfachExceptionFromOsi2PostfachException(osi2RuntimeException); - - var result = handler.derivePostfachException(osi2RuntimeException); - - assertThat(result).isEqualTo(postfachException); - } - - - @DisplayName("should return unexpected error exception with message by default") - @Test - void shouldReturnUnexpectedErrorException() { - var result = handler.derivePostfachException(exception); - - assertThat(result.getMessage()).startsWith(UNEXPECTED_ERROR_MESSAGE); - } - - @DisplayName("should return unexpected error exception with cause by default") - @Test - void shouldReturnUnexpectedErrorExceptionWithCauseByDefault() { - var result = handler.derivePostfachException(exception); - - assertThat(result.getCause()).isEqualTo(exception); - } - } - - @DisplayName("derive postfach exception from osi2 postfach exception") - @Nested - class TestDerivePostfachExceptionFromOsi2PostfachException { - - private Osi2RuntimeException osi2RuntimeException; - - static final String TEST_MESSAGE = "test-message"; - - @Mock - RuntimeException cause; - - @BeforeEach - void mock() { - osi2RuntimeException = new Osi2RuntimeException(TEST_MESSAGE, cause); - doReturn(PROCESS_FAILED_MESSAGE_CODE).when(handler).deriveMessageCode(cause); - } - - @DisplayName("should return with message") - @Test - void shouldReturnWithMessage() { - var result = handler.derivePostfachExceptionFromOsi2PostfachException(osi2RuntimeException); - - assertThat(result.getMessage()).startsWith(TEST_MESSAGE); - } - - @DisplayName("should return with cause") - @Test - void shouldReturnWithCause() { - var result = handler.derivePostfachExceptionFromOsi2PostfachException(osi2RuntimeException); - - assertThat(result) - .extracting(Exception::getCause) - .isEqualTo(cause); - } - - @DisplayName("should return with message code") - @Test - void shouldReturnWithMessageCode() { - var result = handler.derivePostfachExceptionFromOsi2PostfachException(osi2RuntimeException); - - assertThat(result) - .extracting(Osi2PostfachException::getMessageCode) - .isEqualTo(PROCESS_FAILED_MESSAGE_CODE); - } - } - @DisplayName("derive message code") @Nested class TestDeriveMessageCode { diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/extension/VorgangManagerServerExtension.java b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/extension/VorgangManagerServerExtension.java index 5b370d9b00448bafabed35919300b09c15f9790e..494577ae67a60c3dd38b701520023967f42d164b 100644 --- a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/extension/VorgangManagerServerExtension.java +++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/extension/VorgangManagerServerExtension.java @@ -11,9 +11,11 @@ import org.junit.jupiter.api.extension.ExtensionContext; import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.containers.Network; import org.testcontainers.containers.output.OutputFrame; +import org.testcontainers.lifecycle.Startables; import lombok.Getter; import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; import lombok.extern.log4j.Log4j2; @Log4j2 @@ -32,13 +34,13 @@ public class VorgangManagerServerExtension implements BeforeAllCallback, AfterAl setupVorgangManager(); } + @SneakyThrows private void setupVorgangManager() { var network = Network.newNetwork(); mongoDBContainer = new MongoDBContainer("mongo:7.0") .withStartupTimeout(Duration.ofMinutes(1)) .withNetworkAliases(MONGODB_NETWORK_ALIAS) .withNetwork(network); - mongoDBContainer.start(); vorgangManagerContainer = new VorgangManagerContainer() .withEnv(Map.of( "spring_profiles_active", "local", @@ -51,7 +53,7 @@ public class VorgangManagerServerExtension implements BeforeAllCallback, AfterAl .withLogConsumer(this::logVorgangManager) .withStartupTimeout(Duration.ofMinutes(2)) .dependsOn(mongoDBContainer); - vorgangManagerContainer.start(); + Startables.deepStart(vorgangManagerContainer, mongoDBContainer).get(); } private void logVorgangManager(OutputFrame outputFrame) { 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 97fc19a37ea7b5bd1997b37acb4df08bd4e03f09..06f94a98c1a2e106816362c0f03f9df2b0e39687 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 @@ -16,11 +16,9 @@ import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; -import org.springframework.web.client.RestClientResponseException; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; import de.ozgcloud.nachrichten.postfach.osiv2.config.Osi2PostfachProperties; -import de.ozgcloud.nachrichten.postfach.osiv2.exception.Osi2RuntimeException; import de.ozgcloud.nachrichten.postfach.osiv2.factory.FileChunkInfoTestFactory; import de.ozgcloud.nachrichten.postfach.osiv2.factory.MessageExchangeReceiveMessagesResponseTestFactory; import de.ozgcloud.nachrichten.postfach.osiv2.factory.PostfachNachrichtTestFactory; @@ -61,46 +59,6 @@ class PostfachApiFacadeServiceTest { @DisplayName("send message") @Nested class TestSendMessage { - private final List<Osi2FileUpload> files = List.of(Osi2FileUploadTestFactory.create()); - - private final PostfachNachricht nachricht = PostfachNachrichtTestFactory.create(); - - @DisplayName("without exception") - @Nested - class TestWithoutException { - - @DisplayName("should call sendMessage") - @Test - void shouldCallSendMessage() { - doNothing().when(service).sendMessageRaw(any(), any()); - - service.sendMessage(nachricht, files); - - verify(service).sendMessageRaw(nachricht, files); - } - } - - @DisplayName("with restclient response exception") - @Nested - class TestWithRestclientResponseException { - @Mock - RestClientResponseException restClientResponseException; - - @DisplayName("should rethrow as osi2 runtime exception") - @Test - void shouldRethrowAsOsi2RuntimeException() { - doThrow(restClientResponseException).when(service).sendMessageRaw(any(), any()); - - assertThatThrownBy(() -> service.sendMessage(nachricht, files)) - .isInstanceOf(Osi2RuntimeException.class) - .hasCause(restClientResponseException); - } - } - } - - @DisplayName("send message raw") - @Nested - class TestSendMessageRaw { @Mock OutSendMessageRequestV2 outSendMessageRequestV2; @@ -122,7 +80,7 @@ class PostfachApiFacadeServiceTest { @DisplayName("should call mapMailboxId") @Test void shouldCallMapMailboxId() { - service.sendMessageRaw(nachricht, files); + service.sendMessage(nachricht, files); verify(osi2RequestMapper).mapMailboxId(nachricht); } @@ -130,7 +88,7 @@ class PostfachApiFacadeServiceTest { @DisplayName("should call mapOutSendMessageRequestV2") @Test void shouldCallMapOutSendMessageRequestV2() { - service.sendMessageRaw(nachricht, files); + service.sendMessage(nachricht, files); verify(osi2RequestMapper).mapOutSendMessageRequestV2(nachricht, files); } @@ -138,7 +96,7 @@ class PostfachApiFacadeServiceTest { @DisplayName("should call sendMessage") @Test void shouldCallSendMessage() { - service.sendMessageRaw(nachricht, files); + service.sendMessage(nachricht, files); verify(messageExchangeApi).sendMessage(MAILBOX_ID, outSendMessageRequestV2); } @@ -148,42 +106,6 @@ class PostfachApiFacadeServiceTest { @DisplayName("fetch pending message ids") @Nested class TestFetchPendingMessageIds { - @DisplayName("without exception") - @Nested - class TestWithoutException { - - @DisplayName("should return fetchPendingMessageIdsRaw") - @Test - void shouldReturnFetchPendingMessageIdsRaw() { - doReturn(List.of(MESSAGE_ID_1, MESSAGE_ID_2)).when(service).fetchPendingMessageIdsRaw(); - - var result = service.fetchPendingMessageIds(); - - assertThat(result).containsExactly(MESSAGE_ID_1, MESSAGE_ID_2); - } - } - - @DisplayName("with restclient response exception") - @Nested - class TestWithRestclientResponseException { - @Mock - RestClientResponseException restClientResponseException; - - @DisplayName("should rethrow as osi2 runtime exception") - @Test - void shouldRethrowAsOsi2RuntimeException() { - doThrow(restClientResponseException).when(service).fetchPendingMessageIdsRaw(); - - assertThatThrownBy(() -> service.fetchPendingMessageIds()) - .isInstanceOf(Osi2RuntimeException.class) - .hasCause(restClientResponseException); - } - } - } - - @DisplayName("fetch pending message ids raw") - @Nested - class TestFetchPendingMessageIdsRaw { @DisplayName("with two pending messages") @Nested @@ -254,55 +176,6 @@ class PostfachApiFacadeServiceTest { @Nested class TestFetchMessageById { - private final PostfachNachricht nachricht = PostfachNachrichtTestFactory.create(); - - @DisplayName("without exception") - @Nested - class TestWithoutException { - @BeforeEach - void mock() { - doReturn(nachricht).when(service).fetchMessageByIdRaw(MESSAGE_ID_1); - } - - @DisplayName("should call fetchMessageByIdRaw") - @Test - void shouldCallFetchMessageByIdRaw() { - service.fetchMessageById(MESSAGE_ID_1); - - verify(service).fetchMessageByIdRaw(MESSAGE_ID_1); - } - - @DisplayName("should return") - @Test - void shouldReturn() { - var result = service.fetchMessageById(MESSAGE_ID_1); - - assertThat(result).isEqualTo(nachricht); - } - } - - @DisplayName("with restclient response exception") - @Nested - class TestWithRestclientResponseException { - @Mock - RestClientResponseException restClientResponseException; - - @DisplayName("should rethrow as osi2 runtime exception") - @Test - void shouldRethrowAsOsi2RuntimeException() { - doThrow(restClientResponseException).when(service).fetchMessageByIdRaw(any()); - - assertThatThrownBy(() -> service.fetchMessageById(MESSAGE_ID_1)) - .isInstanceOf(Osi2RuntimeException.class) - .hasCause(restClientResponseException); - } - } - } - - @DisplayName("fetch Message by Id raw") - @Nested - class TestFetchMessageByIdRaw { - @Mock V1ReplyMessage replyMessage; @@ -310,7 +183,7 @@ class PostfachApiFacadeServiceTest { void shouldCallGetMessage() { when(messageExchangeApi.getMessage(any())).thenReturn(replyMessage); - service.fetchMessageByIdRaw(MESSAGE_ID_1); + service.fetchMessageById(MESSAGE_ID_1); verify(messageExchangeApi).getMessage(any()); } @@ -320,7 +193,7 @@ class PostfachApiFacadeServiceTest { when(messageExchangeApi.getMessage(any())).thenReturn(replyMessage); when(osi2ResponseMapper.toPostfachNachricht(any())).thenReturn(PostfachNachrichtTestFactory.create()); - service.fetchMessageByIdRaw(MESSAGE_ID_1); + service.fetchMessageById(MESSAGE_ID_1); verify(osi2ResponseMapper).toPostfachNachricht(any()); } @@ -330,7 +203,7 @@ class PostfachApiFacadeServiceTest { when(messageExchangeApi.getMessage(any())).thenReturn(replyMessage); when(osi2ResponseMapper.toPostfachNachricht(any())).thenReturn(PostfachNachrichtTestFactory.create()); - var postfachNachricht = service.fetchMessageByIdRaw(MESSAGE_ID_1); + var postfachNachricht = service.fetchMessageById(MESSAGE_ID_1); assertThat(postfachNachricht).isInstanceOf(PostfachNachricht.class); } @@ -339,43 +212,6 @@ class PostfachApiFacadeServiceTest { @DisplayName("upload chunk") @Nested class TestUploadChunk { - - @Mock - FileChunkResource chunkResource; - - private final FileChunkInfo info = FileChunkInfoTestFactory.create(); - - @DisplayName("should call uploadChunkRaw") - @Test - void shouldCallUploadChunkRaw() { - doNothing().when(service).uploadChunkRaw(any(), any()); - - service.uploadChunk(info, chunkResource); - - verify(service).uploadChunkRaw(info, chunkResource); - } - - @DisplayName("with restclient response exception") - @Nested - class TestWithRestclientResponseException { - @Mock - RestClientResponseException restClientResponseException; - - @DisplayName("should rethrow as osi2 runtime exception") - @Test - void shouldRethrowAsOsi2RuntimeException() { - doThrow(restClientResponseException).when(service).uploadChunkRaw(any(), any()); - - assertThatThrownBy(() -> service.uploadChunk(info, chunkResource)) - .isInstanceOf(Osi2RuntimeException.class) - .hasCause(restClientResponseException); - } - } - } - - @DisplayName("upload chunk raw") - @Nested - class TestUploadChunkRaw { @Mock FileChunkResource chunkResource; @@ -397,7 +233,7 @@ class PostfachApiFacadeServiceTest { @DisplayName("should call mapDomainChunkMetadata") @Test void shouldCallMapDomainChunkMetadata() { - service.uploadChunkRaw(info, chunkResource); + service.uploadChunk(info, chunkResource); verify(osi2RequestMapper).mapDomainChunkMetaData(info); } @@ -405,7 +241,7 @@ class PostfachApiFacadeServiceTest { @DisplayName("should call uploadChunk") @Test void shouldCallUploadChunk() { - service.uploadChunkRaw(info, chunkResource); + service.uploadChunk(info, chunkResource); verify(quarantineApi).uploadChunk(domainChunkMetaData, TENANT, NAME_IDENTIFIER, chunkResource); } @@ -415,53 +251,6 @@ class PostfachApiFacadeServiceTest { @Nested class TestCheckUploadSuccessful { - @DisplayName("without exception") - @Nested - class TestWithoutException { - @BeforeEach - void mock() { - doReturn(true).when(service).checkUploadSuccessfulRaw(any()); - } - - @DisplayName("should call checkUploadSuccessfulRaw") - @Test - void shouldCallCheckUploadSuccessfulRaw() { - service.checkUploadSuccessful(MESSAGE_ID_1); - - verify(service).checkUploadSuccessfulRaw(MESSAGE_ID_1); - } - - @DisplayName("should return") - @Test - void shouldReturn() { - var result = service.checkUploadSuccessful(MESSAGE_ID_1); - - assertThat(result).isTrue(); - } - } - - @DisplayName("with restclient response exception") - @Nested - class TestWithRestclientResponseException { - @Mock - RestClientResponseException restClientResponseException; - - @DisplayName("should rethrow as osi2 runtime exception") - @Test - void shouldRethrowAsOsi2RuntimeException() { - doThrow(restClientResponseException).when(service).checkUploadSuccessfulRaw(any()); - - assertThatThrownBy(() -> service.checkUploadSuccessful(MESSAGE_ID_1)) - .isInstanceOf(Osi2RuntimeException.class) - .hasCause(restClientResponseException); - } - } - } - - @DisplayName("check upload successful raw") - @Nested - class TestCheckUploadSuccessfulRaw { - private final QuarantineStatus uploadStatus = QuarantineStatus.SAFE; @BeforeEach @@ -473,7 +262,7 @@ class PostfachApiFacadeServiceTest { @DisplayName("should call getUploadStatus") @Test void shouldCallGetUploadStatus() { - service.checkUploadSuccessfulRaw(MESSAGE_ID_1); + service.checkUploadSuccessful(MESSAGE_ID_1); verify(quarantineApi).getUploadStatus(UUID.fromString(MESSAGE_ID_1)); } @@ -481,7 +270,7 @@ class PostfachApiFacadeServiceTest { @DisplayName("should call isSafe") @Test void shouldCallIsSafe() { - service.checkUploadSuccessfulRaw(MESSAGE_ID_1); + service.checkUploadSuccessful(MESSAGE_ID_1); verify(osi2ResponseMapper).isSafe(uploadStatus); } @@ -489,7 +278,7 @@ class PostfachApiFacadeServiceTest { @DisplayName("should return true") @Test void shouldReturnTrue() { - var result = service.checkUploadSuccessfulRaw(MESSAGE_ID_1); + var result = service.checkUploadSuccessful(MESSAGE_ID_1); assertThat(result).isTrue(); } @@ -499,38 +288,6 @@ class PostfachApiFacadeServiceTest { @DisplayName("delete message") @Nested class TestDeleteMessage { - - @DisplayName("should call deleteMessage") - @Test - void shouldCallDeleteMessage() { - doNothing().when(service).deleteMessageRaw(any()); - - service.deleteMessage(MESSAGE_ID_1); - - verify(service).deleteMessageRaw(MESSAGE_ID_1); - } - - @DisplayName("with restclient response exception") - @Nested - class TestWithRestclientResponseException { - @Mock - RestClientResponseException restClientResponseException; - - @DisplayName("should rethrow as osi2 runtime exception") - @Test - void shouldRethrowAsOsi2RuntimeException() { - doThrow(restClientResponseException).when(service).deleteMessageRaw(any()); - - assertThatThrownBy(() -> service.deleteMessage(MESSAGE_ID_1)) - .isInstanceOf(Osi2RuntimeException.class) - .hasCause(restClientResponseException); - } - } - } - - @DisplayName("Delete Message raw") - @Nested - class TestDeleteMessageRaw { @Mock MessageExchangeDeleteMessageResponse replyMessage;