diff --git a/bescheid-manager/src/main/java/de/ozgcloud/document/DocumentMapper.java b/bescheid-manager/src/main/java/de/ozgcloud/document/DocumentMapper.java index 1e404e70a1f6061c768ed22545449c58e729f8d7..41180bab88ef3c302300bd1e51ca34e3ed89619b 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/document/DocumentMapper.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/document/DocumentMapper.java @@ -24,13 +24,13 @@ package de.ozgcloud.document; import org.apache.commons.collections.MapUtils; -import org.apache.commons.lang3.StringUtils; import org.mapstruct.Mapper; import org.mapstruct.Mapping; +import org.mapstruct.NullValueCheckStrategy; import de.ozgcloud.bescheid.attacheditem.AttachedItem; -@Mapper +@Mapper(nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) interface DocumentMapper { @Mapping(target = "allFields", ignore = true) @@ -51,8 +51,8 @@ interface DocumentMapper { .id(attachedItem.getId()) .type(MapUtils.getString(attachedItem.getItem(), Document.FIELD_DOCUMENT_TYPE)) .fileId(MapUtils.getString(attachedItem.getItem(), Document.FIELD_DOCUMENT_FILE)) - .nachrichtText(MapUtils.getString(attachedItem.getItem(), Document.FIELD_NACHRICHT_TEXT, StringUtils.EMPTY)) - .nachrichtSubject(MapUtils.getString(attachedItem.getItem(), Document.FIELD_NACHRICHT_SUBJECT, StringUtils.EMPTY)) + .nachrichtText(MapUtils.getString(attachedItem.getItem(), Document.FIELD_NACHRICHT_TEXT)) + .nachrichtSubject(MapUtils.getString(attachedItem.getItem(), Document.FIELD_NACHRICHT_SUBJECT)) .build(); } } diff --git a/bescheid-manager/src/test/java/de/ozgcloud/document/DocumentMapperTest.java b/bescheid-manager/src/test/java/de/ozgcloud/document/DocumentMapperTest.java index 1a180949434fb55257520fce385ac743000e3a3d..9ba02e1e11c796f19fc771e9ed29000f911690cd 100644 --- a/bescheid-manager/src/test/java/de/ozgcloud/document/DocumentMapperTest.java +++ b/bescheid-manager/src/test/java/de/ozgcloud/document/DocumentMapperTest.java @@ -25,7 +25,6 @@ package de.ozgcloud.document; import static org.assertj.core.api.Assertions.*; -import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -48,6 +47,12 @@ class DocumentMapperTest { 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") @@ -55,25 +60,48 @@ class DocumentMapperTest { class TestFromAttachedItem { @Test - void shouldMapMissingNachrichtSubjectToEmptyString() { - var documentItem = AttachedItemTestFactory.createDocumentItem(); - documentItem.remove(Document.FIELD_NACHRICHT_SUBJECT); - var document = AttachedItemTestFactory.createDocumentBuilder().item(documentItem).build(); + void shouldMapId() { + var document = AttachedItemTestFactory.createDocument(); + + 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); - assertThat(result.getNachrichtSubject()).isEqualTo(StringUtils.EMPTY); + assertThat(result.getNachrichtText()).isEqualTo(DocumentTestFactory.NACHRICHT_TEXT); } @Test - void shouldMapMissingNachrichtTextToEmptyString() { - var documentItem = AttachedItemTestFactory.createDocumentItem(); - documentItem.remove(Document.FIELD_NACHRICHT_TEXT); - var document = AttachedItemTestFactory.createDocumentBuilder().item(documentItem).build(); + void shouldMapNachrichtSubject() { + var document = AttachedItemTestFactory.createDocument(); var result = mapper.fromAttachedItem(document); - assertThat(result.getNachrichtText()).isEqualTo(StringUtils.EMPTY); + assertThat(result.getNachrichtSubject()).isEqualTo(DocumentTestFactory.NACHRICHT_SUBJECT); } } } \ No newline at end of file