From 04c6f0439a4387157db32f911aebf0c771e3340d Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Tue, 28 May 2024 19:01:08 +0200 Subject: [PATCH] OZG-5759 fix loading issue of replyable messages --- nachrichten-manager-server/pom.xml | 2 +- .../nachrichten/postfach/FindVorgangIterator.java | 2 +- .../postfach/PostfachNachrichtMapper.java | 10 +++++++++- .../postfach/PostfachNachrichtMapperTest.java | 14 ++++++++++++-- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/nachrichten-manager-server/pom.xml b/nachrichten-manager-server/pom.xml index 140a4ad..72e0c00 100644 --- a/nachrichten-manager-server/pom.xml +++ b/nachrichten-manager-server/pom.xml @@ -45,7 +45,7 @@ <jaxb-maven-plugin.version>3.0.1</jaxb-maven-plugin.version> <ozg-info-manager-interface.version>0.1.0-SNAPSHOT</ozg-info-manager-interface.version> <bayernid-proxy-interface.version>0.1.0</bayernid-proxy-interface.version> - <vorgang-manager.version>2.6.0</vorgang-manager.version> + <vorgang-manager.version>2.8.0-SNAPSHOT</vorgang-manager.version> </properties> <dependencies> diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/FindVorgangIterator.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/FindVorgangIterator.java index 6bd263b..5f9bdd3 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/FindVorgangIterator.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/FindVorgangIterator.java @@ -62,7 +62,7 @@ public class FindVorgangIterator implements Iterator<GrpcVorgangHeader> { } boolean shouldRequestNext() { - return isNull(vorgangHeaderIterator) || !vorgangHeaderIterator.hasNext() || lastTotal == LIMIT; + return isNull(vorgangHeaderIterator) || (!vorgangHeaderIterator.hasNext() && lastTotal == LIMIT); } @Override 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 20bd8e0..780e100 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 @@ -24,6 +24,7 @@ package de.ozgcloud.nachrichten.postfach; import java.time.ZonedDateTime; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; @@ -135,7 +136,14 @@ public abstract class PostfachNachrichtMapper { @SuppressWarnings("unchecked") private List<String> getAsList(Map<String, Object> mailMap, String fieldName) { - return (List<String>) mailMap.getOrDefault(fieldName, Collections.emptyList()); + var valueObject = mailMap.get(fieldName); + if (valueObject instanceof Collection<?> values) { + return (List<String>) values; + } + if (valueObject instanceof String value) { + return List.of(value); + } + return Collections.emptyList(); } PostfachAddress buildPostfachAddress(Map<String, Object> postfachAddressMap) { 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 4a4460d..ad4c954 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 @@ -143,9 +143,19 @@ class PostfachNachrichtMapperTest { Assertions.assertThat(mail).usingRecursiveComparison().isEqualTo(PostfachNachrichtTestFactory.create()); } + @Test + void shouldMapSingleAttachment() { + var mailMap = PostfachNachrichtTestFactory.asMap(); + mailMap.put(PostfachNachricht.FIELD_ATTACHMENTS, PostfachNachrichtTestFactory.ATTACHMENT_FILE_ID); + + var mail = fromMapToPostfachMail(mailMap); + + assertThat(mail.getAttachments()).containsExactly(PostfachNachrichtTestFactory.ATTACHMENT_FILE_ID); + } + @DisplayName("with missing postfachAddress") @Nested - class TestWithMissinPostfachAddress { + class TestWithMissingPostfachAddress { @Test void shouldMapAsNull() { @@ -182,7 +192,7 @@ class PostfachNachrichtMapperTest { @Mock private GrpcObject grpcObject; - private Map<String, Object> itemMap = PostfachNachrichtTestFactory.asMap(); + private final Map<String, Object> itemMap = PostfachNachrichtTestFactory.asMap(); @BeforeEach void init() { -- GitLab