Skip to content
Snippets Groups Projects
Commit a60fd3a7 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-5666 handle map value in map

parent 7e594fe5
No related branches found
No related tags found
No related merge requests found
...@@ -86,8 +86,10 @@ public abstract class PostfachNachrichtMapper { ...@@ -86,8 +86,10 @@ public abstract class PostfachNachrichtMapper {
.setDirection(GrpcDirection.valueOf(MapUtils.getString(mailMap, PostfachNachricht.FIELD_DIRECTION))) .setDirection(GrpcDirection.valueOf(MapUtils.getString(mailMap, PostfachNachricht.FIELD_DIRECTION)))
.setSubject(MapUtils.getString(mailMap, PostfachNachricht.FIELD_SUBJECT)) .setSubject(MapUtils.getString(mailMap, PostfachNachricht.FIELD_SUBJECT))
.setMailBody(MapUtils.getString(mailMap, PostfachNachricht.FIELD_MAIL_BODY)) .setMailBody(MapUtils.getString(mailMap, PostfachNachricht.FIELD_MAIL_BODY))
.setReplyOption(MapUtils.getString(mailMap, PostfachNachricht.FIELD_REPLY_OPTION)) .setReplyOption(MapUtils.getString(mailMap, PostfachNachricht.FIELD_REPLY_OPTION));
.addAllAttachment(getAttachments(mailMap));
Optional.ofNullable(MapUtils.getObject(mailMap, PostfachNachricht.FIELD_ATTACHMENTS)).map(this::getAttachments)
.ifPresent(postfachMailBuilder::addAllAttachment);
Optional.ofNullable(getAsMap(mailMap, PostfachNachricht.POSTFACH_ADDRESS_FIELD)) Optional.ofNullable(getAsMap(mailMap, PostfachNachricht.POSTFACH_ADDRESS_FIELD))
.filter(MapUtils::isNotEmpty) .filter(MapUtils::isNotEmpty)
...@@ -97,8 +99,7 @@ public abstract class PostfachNachrichtMapper { ...@@ -97,8 +99,7 @@ public abstract class PostfachNachrichtMapper {
return postfachMailBuilder.build(); return postfachMailBuilder.build();
} }
private Iterable<String> getAttachments(Map<String, Object> map) { private Iterable<String> getAttachments(Object attachments) {
var attachments = map.getOrDefault(PostfachNachricht.FIELD_ATTACHMENTS, Collections.emptyList());
if (attachments instanceof String attachment) { if (attachments instanceof String attachment) {
return Collections.singletonList(attachment); return Collections.singletonList(attachment);
} }
......
...@@ -31,6 +31,7 @@ import static org.mockito.Mockito.*; ...@@ -31,6 +31,7 @@ import static org.mockito.Mockito.*;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import org.apache.commons.collections.MapUtils;
import org.assertj.core.api.Assertions; import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
...@@ -125,6 +126,15 @@ class PostfachNachrichtMapperTest { ...@@ -125,6 +126,15 @@ class PostfachNachrichtMapperTest {
assertDoesNotThrow(() -> fromMap(postfachNachrichtMap)); assertDoesNotThrow(() -> fromMap(postfachNachrichtMap));
} }
@Test
void shouldProceedWithNullAsAttachments() {
var postfachNachrichtMap = PostfachNachrichtTestFactory.asMap();
postfachNachrichtMap.put(PostfachNachricht.FIELD_ATTACHMENTS, null);
assertDoesNotThrow(() -> fromMap(postfachNachrichtMap));
}
} }
@DisplayName("with missing postfachAddress") @DisplayName("with missing postfachAddress")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment