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

Merge pull request 'OZG-5323-Bescheid-Document-laden' (#330) from...

Merge pull request 'OZG-5323-Bescheid-Document-laden' (#330) from OZG-5323-Bescheid-Document-laden into master

Reviewed-on: https://git.ozg-sh.de/ozgcloud-app/vorgang-manager/pulls/330
parents 6e485c87 8dbedac9
No related branches found
No related tags found
No related merge requests found
......@@ -26,12 +26,14 @@ package de.ozgcloud.document;
import org.apache.commons.collections.MapUtils;
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)
@Mapping(target = "unknownFields", ignore = true)
@Mapping(target = "typeBytes", ignore = true)
@Mapping(target = "nachrichtTextBytes", ignore = true)
......@@ -44,7 +46,7 @@ interface DocumentMapper {
@Mapping(target = "clearField", ignore = true)
GrpcDocument toGrpcDocument(Document document);
default Document fromAttacheItem(AttachedItem attachedItem) {
default Document fromAttachedItem(AttachedItem attachedItem) {
return Document.builder()
.id(attachedItem.getId())
.type(MapUtils.getString(attachedItem.getItem(), Document.FIELD_DOCUMENT_TYPE))
......
......@@ -96,6 +96,6 @@ public class DocumentService {
}
public Document getDocument(String id) {
return documentMapper.fromAttacheItem(attachedItemService.getItem(id));
return documentMapper.fromAttachedItem(attachedItemService.getItem(id));
}
}
......@@ -23,6 +23,7 @@
*/
package de.ozgcloud.bescheid.attacheditem;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -52,7 +53,7 @@ public class AttachedItemTestFactory {
.build();
}
public static Map<String, Object> createBescheidItem() {
public static Map<String, Object> createBescheidItem() {
return Map.of(
BescheidItem.FIELD_STATUS, BescheidItem.Status.DRAFT,
BescheidItem.FIELD_BESCHIEDEN_AM, BESCHEIDEN_AM,
......@@ -65,19 +66,22 @@ public class AttachedItemTestFactory {
}
public static AttachedItem createDocument() {
return createDocumentBuilder().build();
}
public static AttachedItem.AttachedItemBuilder createDocumentBuilder() {
return createBuilder()
.itemName(DocumentService.DOCUMENT_ITEM_NAME)
.item(createDocumentItem())
.build();
.item(createDocumentItem());
}
public static Map<String, Object> createDocumentItem() {
return Map.of(
Document.FIELD_DOCUMENT_TYPE, DocumentService.DOCUMENT_TYPE,
Document.FIELD_DOCUMENT_FILE, DocumentTestFactory.DOCUMENT_FILE,
Document.FIELD_NACHRICHT_TEXT, DocumentTestFactory.NACHRICHT_TEXT,
Document.FIELD_NACHRICHT_SUBJECT, DocumentTestFactory.NACHRICHT_SUBJECT
);
public static HashMap<String, Object> createDocumentItem() {
var map = new HashMap<String, Object>();
map.put(Document.FIELD_DOCUMENT_TYPE, DocumentService.DOCUMENT_TYPE);
map.put(Document.FIELD_DOCUMENT_FILE, DocumentTestFactory.DOCUMENT_FILE);
map.put(Document.FIELD_NACHRICHT_TEXT, DocumentTestFactory.NACHRICHT_TEXT);
map.put(Document.FIELD_NACHRICHT_SUBJECT, DocumentTestFactory.NACHRICHT_SUBJECT);
return map;
}
public static AttachedItemBuilder createBuilder() {
......
......@@ -25,18 +25,83 @@ package de.ozgcloud.document;
import static org.assertj.core.api.Assertions.*;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mapstruct.factory.Mappers;
import de.ozgcloud.bescheid.attacheditem.AttachedItemTestFactory;
class DocumentMapperTest {
private DocumentMapper mapper = Mappers.getMapper(DocumentMapper.class);
@Test
void shouldMapDocument() {
var result = mapper.toGrpcDocument(DocumentTestFactory.create());
@DisplayName("To grpc document")
@Nested
class TestToGrpcDocument {
@Test
void shouldMapDocument() {
var result = mapper.toGrpcDocument(DocumentTestFactory.create());
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")
@Nested
class TestFromAttachedItem {
@Test
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.getNachrichtText()).isEqualTo(DocumentTestFactory.NACHRICHT_TEXT);
}
@Test
void shouldMapNachrichtSubject() {
var document = AttachedItemTestFactory.createDocument();
var result = mapper.fromAttachedItem(document);
assertThat(result.getNachrichtSubject()).isEqualTo(DocumentTestFactory.NACHRICHT_SUBJECT);
}
}
}
\ No newline at end of file
......@@ -313,13 +313,13 @@ class DocumentServiceTest {
service.getDocument(AttachedItemTestFactory.ID);
verify(documentMapper).fromAttacheItem(expectedItem);
verify(documentMapper).fromAttachedItem(expectedItem);
}
@Test
void shouldReturnDocument() {
var expectedDocument = DocumentTestFactory.create();
when(documentMapper.fromAttacheItem(any())).thenReturn(expectedDocument);
when(documentMapper.fromAttachedItem(any())).thenReturn(expectedDocument);
Document document = service.getDocument(AttachedItemTestFactory.ID);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment