From 4643643e335c62c511648d7a2c44c509510e5d5d Mon Sep 17 00:00:00 2001
From: Jan Zickermann <jan.zickermann@dataport.de>
Date: Wed, 12 Feb 2025 11:06:57 +0100
Subject: [PATCH] OZG-4094 Throw exception for unexpected postfachIdentifier

---
 .../nachrichten/postfach/PostfachNachrichtMapper.java    | 5 ++++-
 .../postfach/PostfachNachrichtMapperTest.java            | 9 ++++-----
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapper.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapper.java
index 6ef2b4b..1fff1bd 100644
--- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapper.java
+++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapper.java
@@ -240,6 +240,9 @@ public abstract class PostfachNachrichtMapper {
 
 	private Map<String, Object> buildPostfachAddressIdentifierMap(PostfachAddress postfachAddress) {
 		var identifier = postfachAddress.getIdentifier();
-		return Map.of(PostfachAddress.FIELD_POSTFACH_ID, identifier.isStringBasedIdentifier() ? identifier.toString() : "");
+		if (!identifier.isStringBasedIdentifier()) {
+			throw new IllegalStateException("Illegal Type of Postfach Identifier: " + identifier.getClass().getName());
+		}
+		return Map.of(PostfachAddress.FIELD_POSTFACH_ID,  identifier.toString());
 	}
 }
\ No newline at end of file
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapperTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapperTest.java
index 469309f..30a5d0b 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapperTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapperTest.java
@@ -339,10 +339,9 @@ class PostfachNachrichtMapperTest {
 			assertDoesNotThrow(() -> mapper.mapToMap(postfachMail));
 		}
 
-		@DisplayName("should map non string based identifier to empty")
+		@DisplayName("should throw if not string-based identifier")
 		@Test
-
-		void shouldMapNonStringBasedIdentifierToEmpty() {
+		void shouldThrowIfNotStringBasedIdentifier() {
 			var postfachMail = PostfachNachrichtTestFactory.createBuilder()
 					.postfachAddress(PostfachAddressTestFactory.createBuilder()
 							.identifier(new PostfachAddressIdentifier() {
@@ -350,9 +349,9 @@ class PostfachNachrichtMapperTest {
 							.build()
 					).build();
 
-			var postfachId = mapPostfachId(postfachMail);
+			assertThatThrownBy(() -> mapPostfachId(postfachMail))
+					.isInstanceOf(IllegalStateException.class);
 
-			assertThat(postfachId).isEmpty();
 		}
 
 		@DisplayName("should map string based identifier")
-- 
GitLab