diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcAttachmentFileTestFactory.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcAttachmentFileTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..431f4e0db302599313bdd66c5817e99acecb426c
--- /dev/null
+++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcAttachmentFileTestFactory.java
@@ -0,0 +1,26 @@
+package de.ozgcloud.eingang.forwarder;
+
+import com.thedeanda.lorem.LoremIpsum;
+
+import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory;
+import de.ozgcloud.eingang.forwarding.GrpcAttachmentFile;
+import de.ozgcloud.eingang.forwarding.GrpcAttachmentFile.Builder;
+
+public class GrpcAttachmentFileTestFactory {
+
+	public static final String GROUP_NAME = LoremIpsum.getInstance().getWords(1);
+
+	public static GrpcAttachmentFile create() {
+		return createBuilder().build();
+	}
+
+	public static Builder createBuilder() {
+		return GrpcAttachmentFile.newBuilder()
+				.setGroupName(GROUP_NAME)
+				.setFileName(IncomingFileTestFactory.NAME)
+				.setContentType(IncomingFileTestFactory.CONTENT_TYPE)
+				.setVendorId(IncomingFileTestFactory.VENDOR_ID)
+				.setSize(IncomingFileTestFactory.SIZE);
+	}
+
+}
diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRepresentationFileTestFactory.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRepresentationFileTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..ce7fb5406a4be3fee2240c228255d88013177dd8
--- /dev/null
+++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRepresentationFileTestFactory.java
@@ -0,0 +1,21 @@
+package de.ozgcloud.eingang.forwarder;
+
+import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory;
+import de.ozgcloud.eingang.forwarding.GrpcRepresentationFile;
+import de.ozgcloud.eingang.forwarding.GrpcRepresentationFile.Builder;
+
+public class GrpcRepresentationFileTestFactory {
+
+	public static GrpcRepresentationFile create() {
+		return createBuilder().build();
+	}
+
+	public static Builder createBuilder() {
+		return GrpcRepresentationFile.newBuilder()
+				.setFileName(IncomingFileTestFactory.NAME)
+				.setContentType(IncomingFileTestFactory.CONTENT_TYPE)
+				.setVendorId(IncomingFileTestFactory.VENDOR_ID)
+				.setSize(IncomingFileTestFactory.SIZE);
+	}
+
+}
diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/IncomingFileMapperTest.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/IncomingFileMapperTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..940332b66903211a08faa73e7033d7e0d9a3bf60
--- /dev/null
+++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/IncomingFileMapperTest.java
@@ -0,0 +1,40 @@
+package de.ozgcloud.eingang.forwarder;
+
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mapstruct.factory.Mappers;
+
+import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory;
+
+class IncomingFileMapperTest {
+
+	private final IncomingFileMapper mapper = Mappers.getMapper(IncomingFileMapper.class);
+
+	@Nested
+	class TestFromGrpcRepresentationFile {
+		@Test
+		void shouldMapToIncomingFile() {
+			var grpcRepresentationFile = GrpcRepresentationFileTestFactory.create();
+
+			var incomingFile = mapper.fromGrpcRepresentationFile(grpcRepresentationFile);
+
+			assertThat(incomingFile).usingRecursiveComparison().ignoringFields("id", "file")
+					.isEqualTo(IncomingFileTestFactory.create());
+		}
+	}
+
+	@Nested
+	class TestFromGrpcAttachmentFile {
+		@Test
+		void shouldMapToIncomingFile() {
+			var grpcAttachmentFile = GrpcAttachmentFileTestFactory.create();
+
+			var incomingFile = mapper.fromGrpcAttachmentFile(grpcAttachmentFile);
+
+			assertThat(incomingFile).usingRecursiveComparison().ignoringFields("id", "file")
+					.isEqualTo(IncomingFileTestFactory.create());
+		}
+	}
+}