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 0000000000000000000000000000000000000000..f5187621d37cc7b48e47a1884e0df775636fca86 --- /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 88a7720b790dfd4c4e4c875e677522d03c7b8ea9..b3625b4713d2cddf4aa1e484cbe57eb13e15199f 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 b82448d57e272a516b01b91b313873e6c224988d..2759035d7ff6c1a76a7bf31ed01f9cfe12fbfbf4 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); } }