From 0315fb99075a08701ad1fde2c1dbd25fbbe20e50 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Wed, 11 Dec 2024 09:47:24 +0100 Subject: [PATCH] #5 send: Throw OsiPostfachException --- .../postfach/osiv2/OsiPostfachException.java | 9 +++++++++ .../postfach/osiv2/OsiPostfachRemoteService.java | 11 +++++++---- .../postfach/osiv2/OsiPostfachRemoteServiceTest.java | 11 ++++++++++- 3 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachException.java diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachException.java b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachException.java new file mode 100644 index 0000000..f518762 --- /dev/null +++ b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachException.java @@ -0,0 +1,9 @@ +package de.ozgcloud.nachrichten.postfach.osiv2; + +import de.ozgcloud.common.errorhandling.TechnicalException; + +public class OsiPostfachException extends TechnicalException { + public OsiPostfachException(String msg, Throwable cause) { + super(msg, cause); + } +} 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 88a7720..b3625b4 100644 --- a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteService.java +++ b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteService.java @@ -16,12 +16,15 @@ import lombok.extern.log4j.Log4j2; public record OsiPostfachRemoteService( PostfachApiFacadeService postfachApiFacadeService ) implements PostfachRemoteService { - public static final String POSTFACH_TYPE_OSIV2 = "OSIV2"; + public static final String POSTFACH_TYPE_OSI = "OSI"; @Override public void sendMessage(PostfachNachricht nachricht) { - postfachApiFacadeService.sendMessage(nachricht); - // TODO handle exceptions? + try { + postfachApiFacadeService.sendMessage(nachricht); + } catch (RuntimeException e) { + throw new OsiPostfachException("Failed to send message", e); + } } @Override @@ -37,7 +40,7 @@ public record OsiPostfachRemoteService( @Override public String getPostfachType() { - return POSTFACH_TYPE_OSIV2; + return POSTFACH_TYPE_OSI; } @Override 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 b82448d..2759035 100644 --- a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceTest.java +++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceTest.java @@ -43,6 +43,15 @@ class OsiPostfachRemoteServiceTest { verify(postfachApiFacadeService).sendMessage(nachricht1); } + + @DisplayName("should throw osi postfach exception on runtime exception") + @Test + void shouldThrowOsiPostfachExceptionOnRuntimeException() { + doThrow(new RuntimeException()).when(postfachApiFacadeService).sendMessage(nachricht1); + + assertThatThrownBy(() -> osiPostfachRemoteService.sendMessage(nachricht1)) + .isInstanceOf(OsiPostfachException.class); + } } @DisplayName("get all messages") @@ -74,7 +83,7 @@ class OsiPostfachRemoteServiceTest { void shouldReturn() { var result = osiPostfachRemoteService.getPostfachType(); - assertThat(result).isEqualTo(OsiPostfachRemoteService.POSTFACH_TYPE_OSIV2); + assertThat(result).isEqualTo(OsiPostfachRemoteService.POSTFACH_TYPE_OSI); } } -- GitLab