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

OZG-5323 avoid NPE when mapping document to grpc

parent ef6bf7e6
Branches
Tags
No related merge requests found
...@@ -24,13 +24,13 @@ ...@@ -24,13 +24,13 @@
package de.ozgcloud.document; package de.ozgcloud.document;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.NullValueCheckStrategy;
import de.ozgcloud.bescheid.attacheditem.AttachedItem; import de.ozgcloud.bescheid.attacheditem.AttachedItem;
@Mapper @Mapper(nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
interface DocumentMapper { interface DocumentMapper {
@Mapping(target = "allFields", ignore = true) @Mapping(target = "allFields", ignore = true)
...@@ -51,8 +51,8 @@ interface DocumentMapper { ...@@ -51,8 +51,8 @@ interface DocumentMapper {
.id(attachedItem.getId()) .id(attachedItem.getId())
.type(MapUtils.getString(attachedItem.getItem(), Document.FIELD_DOCUMENT_TYPE)) .type(MapUtils.getString(attachedItem.getItem(), Document.FIELD_DOCUMENT_TYPE))
.fileId(MapUtils.getString(attachedItem.getItem(), Document.FIELD_DOCUMENT_FILE)) .fileId(MapUtils.getString(attachedItem.getItem(), Document.FIELD_DOCUMENT_FILE))
.nachrichtText(MapUtils.getString(attachedItem.getItem(), Document.FIELD_NACHRICHT_TEXT, StringUtils.EMPTY)) .nachrichtText(MapUtils.getString(attachedItem.getItem(), Document.FIELD_NACHRICHT_TEXT))
.nachrichtSubject(MapUtils.getString(attachedItem.getItem(), Document.FIELD_NACHRICHT_SUBJECT, StringUtils.EMPTY)) .nachrichtSubject(MapUtils.getString(attachedItem.getItem(), Document.FIELD_NACHRICHT_SUBJECT))
.build(); .build();
} }
} }
...@@ -25,7 +25,6 @@ package de.ozgcloud.document; ...@@ -25,7 +25,6 @@ package de.ozgcloud.document;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
...@@ -48,6 +47,12 @@ class DocumentMapperTest { ...@@ -48,6 +47,12 @@ class DocumentMapperTest {
assertThat(result).usingRecursiveComparison().isEqualTo(GrpcDocumentTestFactory.create()); assertThat(result).usingRecursiveComparison().isEqualTo(GrpcDocumentTestFactory.create());
} }
@Test
void shouldMapEmptyDocument() {
var result = mapper.toGrpcDocument(Document.builder().build());
assertThat(result).isEqualTo(GrpcDocument.newBuilder().build());
}
} }
@DisplayName("From attached item") @DisplayName("From attached item")
...@@ -55,25 +60,48 @@ class DocumentMapperTest { ...@@ -55,25 +60,48 @@ class DocumentMapperTest {
class TestFromAttachedItem { class TestFromAttachedItem {
@Test @Test
void shouldMapMissingNachrichtSubjectToEmptyString() { void shouldMapId() {
var documentItem = AttachedItemTestFactory.createDocumentItem(); var document = AttachedItemTestFactory.createDocument();
documentItem.remove(Document.FIELD_NACHRICHT_SUBJECT);
var document = AttachedItemTestFactory.createDocumentBuilder().item(documentItem).build(); var result = mapper.fromAttachedItem(document);
assertThat(result.getId()).isEqualTo(AttachedItemTestFactory.ID);
}
@Test
void shouldMapType() {
var document = AttachedItemTestFactory.createDocument();
var result = mapper.fromAttachedItem(document);
assertThat(result.getType()).isEqualTo(DocumentService.DOCUMENT_TYPE);
}
@Test
void shouldMapFileId() {
var document = AttachedItemTestFactory.createDocument();
var result = mapper.fromAttachedItem(document);
assertThat(result.getFileId()).isEqualTo(DocumentTestFactory.DOCUMENT_FILE);
}
@Test
void shouldMapNachrichtText() {
var document = AttachedItemTestFactory.createDocument();
var result = mapper.fromAttachedItem(document); var result = mapper.fromAttachedItem(document);
assertThat(result.getNachrichtSubject()).isEqualTo(StringUtils.EMPTY); assertThat(result.getNachrichtText()).isEqualTo(DocumentTestFactory.NACHRICHT_TEXT);
} }
@Test @Test
void shouldMapMissingNachrichtTextToEmptyString() { void shouldMapNachrichtSubject() {
var documentItem = AttachedItemTestFactory.createDocumentItem(); var document = AttachedItemTestFactory.createDocument();
documentItem.remove(Document.FIELD_NACHRICHT_TEXT);
var document = AttachedItemTestFactory.createDocumentBuilder().item(documentItem).build();
var result = mapper.fromAttachedItem(document); var result = mapper.fromAttachedItem(document);
assertThat(result.getNachrichtText()).isEqualTo(StringUtils.EMPTY); assertThat(result.getNachrichtSubject()).isEqualTo(DocumentTestFactory.NACHRICHT_SUBJECT);
} }
} }
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment