From a14885bf2f9234e5cd4c58a30340bea4b54c4381 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Tue, 10 Dec 2024 14:21:04 +0100
Subject: [PATCH] OZG-7363 Handle null OE-id

---
 alfa-client/pom.xml                           |  5 +-
 alfa-server/pom.xml                           |  2 +-
 alfa-service/pom.xml                          |  5 +-
 .../postfach/PostfachSettingsService.java     | 10 ++-
 .../postfach/PostfachSettingsServiceTest.java | 66 ++++++++++++-------
 pom.xml                                       |  2 +-
 6 files changed, 55 insertions(+), 35 deletions(-)

diff --git a/alfa-client/pom.xml b/alfa-client/pom.xml
index cc55992013..65fcfa2877 100644
--- a/alfa-client/pom.xml
+++ b/alfa-client/pom.xml
@@ -24,13 +24,12 @@
     unter der Lizenz sind dem Lizenztext zu entnehmen.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
   <parent>
     <groupId>de.ozgcloud.alfa</groupId>
     <artifactId>alfa</artifactId>
-    <version>2.17.0</version>
+    <version>2.17.1-SNAPSHOT</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/alfa-server/pom.xml b/alfa-server/pom.xml
index c1f9487c22..b310933cdb 100644
--- a/alfa-server/pom.xml
+++ b/alfa-server/pom.xml
@@ -30,7 +30,7 @@
 	<parent>
 		<groupId>de.ozgcloud.alfa</groupId>
 		<artifactId>alfa</artifactId>
-		<version>2.17.0</version>
+		<version>2.17.1-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>alfa-server</artifactId>
diff --git a/alfa-service/pom.xml b/alfa-service/pom.xml
index 5987635d5c..e357bb2ad2 100644
--- a/alfa-service/pom.xml
+++ b/alfa-service/pom.xml
@@ -24,15 +24,14 @@
     unter der Lizenz sind dem Lizenztext zu entnehmen.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
 	<modelVersion>4.0.0</modelVersion>
 
 	<parent>
 		<groupId>de.ozgcloud.alfa</groupId>
 		<artifactId>alfa</artifactId>
-		<version>2.17.0</version>
+		<version>2.17.1-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>alfa-service</artifactId>
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachSettingsService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachSettingsService.java
index 5e5ca6852b..71d81170a9 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachSettingsService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachSettingsService.java
@@ -99,12 +99,18 @@ class PostfachSettingsService {
 				.orElse(false);
 	}
 
-	Optional<OrganisationsEinheitSettings> getOrganisationsEinheitSettings(final String organisationId) {
-		return Optional.ofNullable(postfachProperties.getOrganisationsEinheitSettings().get(organisationId)).map(this::mapOrganisationsEinheitSettings);
+	Optional<OrganisationsEinheitSettings> getOrganisationsEinheitSettings(String organisationId) {
+		return Optional.ofNullable(organisationId)
+				.map(this::getOrganisationsEinheitPostfachSettings)
+				.map(this::mapOrganisationsEinheitSettings);
 	}
 
 	OrganisationsEinheitSettings mapOrganisationsEinheitSettings(Map<String, Object> organisationsEinheitSettings) {
 		var signatur = Optional.ofNullable(organisationsEinheitSettings.get(FIELD_SIGNATUR)).map(Object::toString).orElse(null);
 		return OrganisationsEinheitSettings.builder().signatur(signatur).build();
 	}
+
+	private Map<String, Object> getOrganisationsEinheitPostfachSettings(String organisationId) {
+		return postfachProperties.getOrganisationsEinheitSettings().get(organisationId);
+	}
 }
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/postfach/PostfachSettingsServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/postfach/PostfachSettingsServiceTest.java
index 82811fbf49..23af6bf579 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/postfach/PostfachSettingsServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/postfach/PostfachSettingsServiceTest.java
@@ -384,41 +384,57 @@ class PostfachSettingsServiceTest {
 	@Nested
 	class TestGetOrganisationsEinheitSettings {
 
-		private final OrganisationsEinheitSettings organisationsEinheitSettings = OrganisationsEinheitSettingsTestFactory.create();
-		private final Map<String, Object> organisationsEinheitSettingsMap = Map.of(PostfachSettingsService.FIELD_SIGNATUR, OrganisationsEinheitSettingsTestFactory.TEST_SIGNATUR);
+		@Nested
+		class OnOrganisationIdNotNull {
 
-		@BeforeEach
-		void setUp() {
-			when(postfachProperties.getOrganisationsEinheitSettings()).thenReturn(
-					Map.of(OrganisationsEinheitTestFactory.ID, organisationsEinheitSettingsMap));
-		}
+			private final OrganisationsEinheitSettings organisationsEinheitSettings = OrganisationsEinheitSettingsTestFactory.create();
+			private final Map<String, Object> organisationsEinheitSettingsMap = Map.of(PostfachSettingsService.FIELD_SIGNATUR,
+					OrganisationsEinheitSettingsTestFactory.TEST_SIGNATUR);
 
-		@Test
-		void shouldGetOrganisationsEinheitSettings() {
-			service.getOrganisationsEinheitSettings(OrganisationsEinheitTestFactory.ID);
+			@BeforeEach
+			void setUp() {
+				when(postfachProperties.getOrganisationsEinheitSettings()).thenReturn(
+						Map.of(OrganisationsEinheitTestFactory.ID, organisationsEinheitSettingsMap));
+			}
 
-			verify(postfachProperties).getOrganisationsEinheitSettings();
-		}
+			@Test
+			void shouldGetOrganisationsEinheitSettings() {
+				service.getOrganisationsEinheitSettings(OrganisationsEinheitTestFactory.ID);
 
-		@Test
-		void shouldMapToOrganisationsEinheitSettings() {
-			service.getOrganisationsEinheitSettings(OrganisationsEinheitTestFactory.ID);
+				verify(postfachProperties).getOrganisationsEinheitSettings();
+			}
 
-			verify(service).mapOrganisationsEinheitSettings(organisationsEinheitSettingsMap);
-		}
+			@Test
+			void shouldMapToOrganisationsEinheitSettings() {
+				service.getOrganisationsEinheitSettings(OrganisationsEinheitTestFactory.ID);
 
-		@Test
-		void shouldReturnSettings() {
-			var settings = service.getOrganisationsEinheitSettings(OrganisationsEinheitTestFactory.ID);
+				verify(service).mapOrganisationsEinheitSettings(organisationsEinheitSettingsMap);
+			}
+
+			@Test
+			void shouldReturnSettings() {
+				var settings = service.getOrganisationsEinheitSettings(OrganisationsEinheitTestFactory.ID);
+
+				assertThat(settings).isPresent().get().usingRecursiveComparison().isEqualTo(organisationsEinheitSettings);
+			}
+
+			@Test
+			void shouldReturnEmpty() {
+				var settings = service.getOrganisationsEinheitSettings(UUID.randomUUID().toString());
 
-			assertThat(settings).isPresent().get().usingRecursiveComparison().isEqualTo(organisationsEinheitSettings);
+				assertThat(settings).isEmpty();
+			}
 		}
 
-		@Test
-		void shouldReturnEmpty() {
-			var settings = service.getOrganisationsEinheitSettings(UUID.randomUUID().toString());
+		@Nested
+		class OnOrganisationIdNull {
 
-			assertThat(settings).isEmpty();
+			@Test
+			void shouldReturnEmpty() {
+				var settings = service.getOrganisationsEinheitSettings(null);
+
+				assertThat(settings).isEmpty();
+			}
 		}
 	}
 
diff --git a/pom.xml b/pom.xml
index 000974e00f..2c536af25a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,7 @@
 
 	<groupId>de.ozgcloud.alfa</groupId>
 	<artifactId>alfa</artifactId>
-	<version>2.17.0</version>
+	<version>2.17.1-SNAPSHOT</version>
 	<name>Alfa Parent</name>
 	<packaging>pom</packaging>
 	<inceptionYear>2020</inceptionYear>
-- 
GitLab