diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdServerException.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdServerException.java index 2936cc72946593a4f64d24d4b2df4c0f56b9f3ff..51128f7057c316887498b879a203170f38767028 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdServerException.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdServerException.java @@ -1,7 +1,28 @@ +/* + * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den + * Ministerpräsidenten des Landes Schleswig-Holstein + * Staatskanzlei + * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung + * + * Lizenziert unter der EUPL, Version 1.2 oder - sobald + * diese von der Europäischen Kommission genehmigt wurden - + * Folgeversionen der EUPL ("Lizenz"); + * Sie dürfen dieses Werk ausschließlich gemäß + * dieser Lizenz nutzen. + * Eine Kopie der Lizenz finden Sie hier: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Sofern nicht durch anwendbare Rechtsvorschriften + * gefordert oder in schriftlicher Form vereinbart, wird + * die unter der Lizenz verbreitete Software "so wie sie + * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - + * ausdrücklich oder stillschweigend - verbreitet. + * Die sprachspezifischen Genehmigungen und Beschränkungen + * unter der Lizenz sind dem Lizenztext zu entnehmen. + */ package de.ozgcloud.nachrichten.postfach.bayernid; -import java.util.Optional; - import de.ozgcloud.nachrichten.postfach.PostfachException; import de.ozgcloud.nachrichten.postfach.PostfachMessageCode; @@ -23,9 +44,11 @@ class BayernIdServerException extends PostfachException { // NOSONAR "This class } static PostfachMessageCode getPostfachMessageCode(MailSendingResponseStatus mailSendingResponseStatus) { - return Optional.ofNullable(mailSendingResponseStatus).filter(status -> status == MailSendingResponseStatus.INVALID_POSTKORB_ID) - .map(status -> PostfachMessageCode.SEND_FAILED_UNKNOWN_POSTFACH_ID_MESSAGE_CODE) - .orElse(PostfachMessageCode.PROCESS_FAILED_MESSAGE_CODE); + return switch (mailSendingResponseStatus) { + case INVALID_POSTKORB_ID -> PostfachMessageCode.SEND_FAILED_UNKNOWN_POSTFACH_ID_MESSAGE_CODE; + case SUCCESS -> PostfachMessageCode.SEND_SUCCESSFUL_MESSAGE_CODE; + default -> PostfachMessageCode.PROCESS_FAILED_MESSAGE_CODE; + }; } @Override diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdServerExceptionTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdServerExceptionTest.java new file mode 100644 index 0000000000000000000000000000000000000000..d603e63d5b70e295a7a9268ed671f1e3ee228e60 --- /dev/null +++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdServerExceptionTest.java @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den + * Ministerpräsidenten des Landes Schleswig-Holstein + * Staatskanzlei + * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung + * + * Lizenziert unter der EUPL, Version 1.2 oder - sobald + * diese von der Europäischen Kommission genehmigt wurden - + * Folgeversionen der EUPL ("Lizenz"); + * Sie dürfen dieses Werk ausschließlich gemäß + * dieser Lizenz nutzen. + * Eine Kopie der Lizenz finden Sie hier: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Sofern nicht durch anwendbare Rechtsvorschriften + * gefordert oder in schriftlicher Form vereinbart, wird + * die unter der Lizenz verbreitete Software "so wie sie + * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - + * ausdrücklich oder stillschweigend - verbreitet. + * Die sprachspezifischen Genehmigungen und Beschränkungen + * unter der Lizenz sind dem Lizenztext zu entnehmen. + */ +package de.ozgcloud.nachrichten.postfach.bayernid; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; + +import de.ozgcloud.nachrichten.postfach.PostfachMessageCode; + +class BayernIdServerExceptionTest { + + @Nested + class TestGetPostfachMessageCode { + + @Test + void shouldReturnSendFailedUnknownPostfachId() { + var result = BayernIdServerException.getPostfachMessageCode(MailSendingResponseStatus.INVALID_POSTKORB_ID); + + assertThat(result).isEqualTo(PostfachMessageCode.SEND_FAILED_UNKNOWN_POSTFACH_ID_MESSAGE_CODE); + } + + @Test + void shouldReturnSendingSuccessful() { + var result = BayernIdServerException.getPostfachMessageCode(MailSendingResponseStatus.SUCCESS); + + assertThat(result).isEqualTo(PostfachMessageCode.SEND_SUCCESSFUL_MESSAGE_CODE); + } + + @DisplayName("should return process failed") + @ParameterizedTest(name = "for {0}") + @EnumSource(value = MailSendingResponseStatus.class, names = { "INVALID_POSTKORB_ID", "SUCCESS" }, mode = EnumSource.Mode.EXCLUDE) + void shouldReturnProcessFailed(MailSendingResponseStatus status) { + var result = BayernIdServerException.getPostfachMessageCode(status); + + assertThat(result).isEqualTo(PostfachMessageCode.PROCESS_FAILED_MESSAGE_CODE); + } + } +} \ No newline at end of file