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 85b43ea2c05fe716168026578a7a2071cd937ee1..41180bab88ef3c302300bd1e51ca34e3ed89619b 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/document/DocumentMapper.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/document/DocumentMapper.java
@@ -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))
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/document/DocumentService.java b/bescheid-manager/src/main/java/de/ozgcloud/document/DocumentService.java
index 6400a8c11d2713b1b133d06c094ceb341210201b..f290e57572d8bf1a95a9dec9a8b54671a6b179c8 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/document/DocumentService.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/document/DocumentService.java
@@ -96,6 +96,6 @@ public class DocumentService {
 	}
 
 	public Document getDocument(String id) {
-		return documentMapper.fromAttacheItem(attachedItemService.getItem(id));
+		return documentMapper.fromAttachedItem(attachedItemService.getItem(id));
 	}
 }
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/AttachedItemTestFactory.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/AttachedItemTestFactory.java
index 18fa5737493cae7b9fc7907e643844f661a4d2dc..56fb0e8ad3050b0dc143f888671c4ef9c59bb8f2 100644
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/AttachedItemTestFactory.java
+++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/attacheditem/AttachedItemTestFactory.java
@@ -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() {
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 889c1d5609d248320868317704b5b553ffd9bab6..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,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
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/document/DocumentServiceTest.java b/bescheid-manager/src/test/java/de/ozgcloud/document/DocumentServiceTest.java
index d97c1176e3ba0e435914364ed92a077d00f2ddc5..736947b3a9ede6e9fbd04893ae3f6079887b4fcd 100644
--- a/bescheid-manager/src/test/java/de/ozgcloud/document/DocumentServiceTest.java
+++ b/bescheid-manager/src/test/java/de/ozgcloud/document/DocumentServiceTest.java
@@ -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);