diff --git a/nachrichten-manager-server/pom.xml b/nachrichten-manager-server/pom.xml index 67a127f1204b52b3dc2ab4bb7e2b084c0dbd8ca6..fa3c2b2ebff80757eb3eb3449280a169a966dab3 100644 --- a/nachrichten-manager-server/pom.xml +++ b/nachrichten-manager-server/pom.xml @@ -48,8 +48,8 @@ <bayernid-proxy-interface.version>0.7.0</bayernid-proxy-interface.version> <vorgang-manager.version>2.17.0</vorgang-manager.version> <muk-postfach.version>0.1.0</muk-postfach.version> + <osiv2-postfach.version>0.2.0</osiv2-postfach.version> <api-lib.version>0.16.0</api-lib.version> - <ozgcloud-common.version>4.7.0</ozgcloud-common.version> </properties> <dependencies> @@ -88,6 +88,11 @@ <artifactId>muk-postfach</artifactId> <version>${muk-postfach.version}</version> </dependency> + <dependency> + <groupId>de.ozgcloud.osiv2</groupId> + <artifactId>osiv2-postfach</artifactId> + <version>${osiv2-postfach.version}</version> + </dependency> <dependency> <groupId>de.ozgcloud.info</groupId> @@ -104,7 +109,6 @@ <dependency> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-lib</artifactId> - <version>${ozgcloud-common.version}</version> </dependency> <dependency> 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 c521e7dbdb02f729df1d310d89060fbcbefc5c0f..1fff1bd82ecef30baea5941bd2be761ab05d8944 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 @@ -239,7 +239,10 @@ public abstract class PostfachNachrichtMapper { } private Map<String, Object> buildPostfachAddressIdentifierMap(PostfachAddress postfachAddress) { - var identifier = (StringBasedIdentifier) postfachAddress.getIdentifier(); - return Map.of(PostfachAddress.FIELD_POSTFACH_ID, identifier.getPostfachId()); + var identifier = postfachAddress.getIdentifier(); + 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 9e6c5c70bdcf244e71016e7963c42e96699b8e6f..30a5d0bf35e31b3e9c21ab2c068fe45cff051abe 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 @@ -23,6 +23,7 @@ */ package de.ozgcloud.nachrichten.postfach; +import static de.ozgcloud.nachrichten.postfach.StringBasedIdentifierTestFactory.*; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; @@ -338,6 +339,39 @@ class PostfachNachrichtMapperTest { assertDoesNotThrow(() -> mapper.mapToMap(postfachMail)); } + @DisplayName("should throw if not string-based identifier") + @Test + void shouldThrowIfNotStringBasedIdentifier() { + var postfachMail = PostfachNachrichtTestFactory.createBuilder() + .postfachAddress(PostfachAddressTestFactory.createBuilder() + .identifier(new PostfachAddressIdentifier() { + }) + .build() + ).build(); + + assertThatThrownBy(() -> mapPostfachId(postfachMail)) + .isInstanceOf(IllegalStateException.class); + + } + + @DisplayName("should map string based identifier") + @Test + void shouldMapStringBasedIdentifier() { + var postfachMail = PostfachNachrichtTestFactory.create(); + + var postfachId = mapPostfachId(postfachMail); + + assertThat(postfachId).isEqualTo(STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE); + } + + @SuppressWarnings("unchecked") + private String mapPostfachId(PostfachNachricht nachricht) { + var result = mapper.mapToMap(nachricht); + var postfachAddress = (Map<String, Object>) result.get(PostfachNachricht.POSTFACH_ADDRESS_FIELD); + var postfachIdentifier = (Map<String, Object>) postfachAddress.get(PostfachAddress.IDENTIFIER_FIELD); + return (String) postfachIdentifier.get(PostfachAddress.FIELD_POSTFACH_ID); + } + @Test void shouldProceedWithEmptyPostfachAddress() { var postfachMail = PostfachNachrichtTestFactory.createBuilder().postfachAddress(null).build(); diff --git a/pom.xml b/pom.xml index 0cda336d0c16b605be4f64300b901d76743875c7..2a90ade7878e4fa0523b0edc3cd2f55961351198 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-parent</artifactId> - <version>4.7.0</version> + <version>4.9.0</version> </parent> <groupId>de.ozgcloud.nachrichten</groupId>