diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/document/DocumentGrpcServiceITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/document/DocumentGrpcServiceITCase.java
new file mode 100644
index 0000000000000000000000000000000000000000..95720de7ca399b35508f54d47da2550cb858dadd
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/document/DocumentGrpcServiceITCase.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.document;
+
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+import java.util.Map;
+import java.util.Optional;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mock;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.test.annotation.DirtiesContext;
+
+import de.ozgcloud.bescheid.common.callcontext.CallContextUser;
+import de.ozgcloud.bescheid.common.callcontext.CurrentUserService;
+import de.ozgcloud.common.test.DataITCase;
+import de.ozgcloud.document.DocumentServiceGrpc.DocumentServiceBlockingStub;
+import de.ozgcloud.vorgang.VorgangManagerServerApplication;
+import de.ozgcloud.vorgang.attached_item.VorgangAttachedItem;
+import de.ozgcloud.vorgang.attached_item.VorgangAttachedItemTestFactory;
+import io.grpc.StatusRuntimeException;
+import net.devh.boot.grpc.client.inject.GrpcClient;
+
+@SpringBootTest(classes = VorgangManagerServerApplication.class, properties = {
+		"grpc.server.inProcessName=test",
+		"grpc.server.port=-1",
+		"grpc.client.vorgang-manager.address=in-process:test",
+		"grpc.client.inProcess.address=in-process:test",
+})
+@DataITCase
+@DirtiesContext
+class DocumentGrpcServiceITCase {
+
+	@GrpcClient("inProcess")
+	private DocumentServiceBlockingStub documentServiceStub;
+
+	@Autowired
+	private MongoOperations mongoOperations;
+
+	@MockBean
+	private CurrentUserService currentUserService;
+	@Mock
+	private CallContextUser callContextUser;
+
+	@BeforeEach
+	void init() {
+		mongoOperations.dropCollection(VorgangAttachedItem.COLLECTION_NAME);
+		when(currentUserService.findUser()).thenReturn(Optional.of(callContextUser));
+		when(currentUserService.getUser()).thenReturn(callContextUser);
+	}
+
+	@Test
+	void shouldGetDocument() {
+		var documentId = saveDocument();
+
+		var response = documentServiceStub.getDocument(GrpcGetDocumentRequest.newBuilder().setId(documentId).build());
+
+		assertThat(response.hasDocument()).isTrue();
+	}
+
+	@Test
+	void shouldThrowExceptionWhenDocumentNotFound() {
+		saveDocument();
+		var request = GrpcGetDocumentRequest.newBuilder().setId("not-found").build();
+
+		Assertions.assertThrows(StatusRuntimeException.class, () -> documentServiceStub.getDocument(request));
+	}
+
+	private String saveDocument() {
+		var document  = VorgangAttachedItemTestFactory.createBuilder()
+				.id(null)
+				.version(0)
+				.itemName(DocumentService.DOCUMENT_ITEM_NAME)
+				.item(Map.of(
+								Document.FIELD_DOCUMENT_TYPE, DocumentService.DOCUMENT_TYPE,
+								Document.FIELD_DOCUMENT_FILE, "file-id",
+								Document.FIELD_NACHRICHT_TEXT, "nachricht-text",
+								Document.FIELD_NACHRICHT_SUBJECT, "nachricht-subject"))
+				.build();
+		return mongoOperations.save(document, VorgangAttachedItem.COLLECTION_NAME).getId();
+	}
+}