diff --git a/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/AttachmentTestFactory.java b/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/AttachmentTestFactory.java
index 8c070dc29f248415d02c9a45d41b8ab34e1d1530..0bc63fd67c648f3a51d7a57942cd5414a3293262 100644
--- a/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/AttachmentTestFactory.java
+++ b/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/AttachmentTestFactory.java
@@ -25,13 +25,12 @@ package de.ozgcloud.eingang.intelliform;
 
 import static java.util.stream.Collectors.*;
 
-import java.time.Instant;
+import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 import java.util.stream.IntStream;
 import java.util.stream.Stream;
 
-import de.ozgcloud.common.test.TestUtils;
+import lombok.Builder;
 
 public class AttachmentTestFactory {
 
@@ -53,24 +52,29 @@ public class AttachmentTestFactory {
 				    <file content-type="image/png" description="" id="VendorId3333" length="155251">Image.png</file>
 			      </Upload1>
 			    </myForm>""";
-	public static final byte[] XML_CONTENT = XML_CONTENT_STRING.getBytes();
+	public static final String XML_CONTENT = XML_CONTENT_STRING;
 	public static final String XML_ATTACHMENT_ID = "myForm-xml";
 	public static final String XML_NAME = "XML-Daten.xml";
 
 	public static final String PDF_ATTACHMENT_CONTENT_TYPE = "application/pdf";
-	public static final byte[] PDF_ATTACHMENT_CONTENT = "TestContent2".getBytes();
+	public static final String PDF_ATTACHMENT_CONTENT = "TestContent2";
 	public static final String PDF_ATTACHMENT_NAME = "Scan1.pdf";
 	public static final String PDF_ATTACHMENT_ID = "VendorId2222";
 	public static final String PDF2_ATTACHMENT_ID = "VendorIdpdf2";
 
 	public static final String PNG_ATTACHMENT_CONTENT_TYPE = "application/pdf";
-	public static final byte[] PNG_ATTACHMENT_CONTENT = "TestContent3".getBytes();
+	public static final String PNG_ATTACHMENT_CONTENT = "TestContent3";
 	public static final String PNG_ATTACHMENT_NAME = "Image.png";
 	public static final String PNG_ATTACHMENT_ID = "VendorId3333";
 
 	public static final String JPG_ATTACHMENT_ID = "VendorIdjpg1";
 	public static final String ODT_ATTACHMENT_ID = "VendorIdodt1";
 
+	public static final String ODT_ATTACHMENT_CONTENT_TYPE = "application/vnd.oasis.opendocument.text";
+
+	public static final String DOCX_ATTACHMENT_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
+	public static final String DOCX_ATTACHMENT_CONTENT = "TestContent4";
+
 	public static final String DOCX1_ATTACHMENT_ID = "VendorIddocx1";
 	public static final String DOCX2_ATTACHMENT_ID = "VendorIddocx2";
 	public static final String DOCX3_ATTACHMENT_ID = "VendorIddocx3";
@@ -81,7 +85,6 @@ public class AttachmentTestFactory {
 	public static final String DOCX8_ATTACHMENT_ID = "VendorIddocx8";
 	public static final String ORGANISATIONSEINHEITEN_ID = "10363455";
 
-
 	public static final String ANTRAGSTELLER_ANREDE = "Herr";
 	public static final String ANTRAGSTELLER_ANREDE_CODE = "03";
 	public static final String ANTRAGSTELLER_NACHNAME = "Mustermann";
@@ -94,22 +97,30 @@ public class AttachmentTestFactory {
 	}
 
 	public static Attachment createPdf() {
-		var attachment = new Attachment();
-		attachment.getAttributes().add(createAttributesEntry());
-		attachment.setContent(PDF_ATTACHMENT_CONTENT);
-		attachment.setContentType(PDF_ATTACHMENT_CONTENT_TYPE);
-		attachment.setId(PDF_ATTACHMENT_ID);
-		attachment.setName(PDF_ATTACHMENT_NAME);
-		return attachment;
+		return createAttachment(MetaAttachment.builder()
+				.id(PDF_ATTACHMENT_ID)
+				.name(PDF_ATTACHMENT_NAME)
+				.contentType(PDF_ATTACHMENT_CONTENT_TYPE)
+				.content(PDF_ATTACHMENT_CONTENT)
+				.build());
 	}
 
 	public static Attachment createPng() {
+		return createAttachment(MetaAttachment.builder()
+				.id(PNG_ATTACHMENT_ID)
+				.name(PNG_ATTACHMENT_NAME)
+				.contentType(PNG_ATTACHMENT_CONTENT_TYPE)
+				.content(PNG_ATTACHMENT_CONTENT)
+				.build());
+	}
+
+	private static Attachment createAttachment(MetaAttachment metaAttachment) {
 		var attachment = new Attachment();
 		attachment.getAttributes().add(createAttributesEntry());
-		attachment.setContent(PNG_ATTACHMENT_CONTENT);
-		attachment.setContentType(PNG_ATTACHMENT_CONTENT_TYPE);
-		attachment.setId(PNG_ATTACHMENT_ID);
-		attachment.setName(PNG_ATTACHMENT_NAME);
+		attachment.setContent(metaAttachment.content.getBytes());
+		attachment.setContentType(metaAttachment.contentType);
+		attachment.setId(metaAttachment.id);
+		attachment.setName(metaAttachment.name);
 		return attachment;
 	}
 
@@ -120,87 +131,52 @@ public class AttachmentTestFactory {
 		return attributesEntry;
 	}
 
-	public static Attachment createWithIdAndName(String attachmentId, String attachmentName) {
-		var attachment = new Attachment();
-		attachment.getAttributes().add(createAttributesEntry());
-		attachment.setContent("test content".getBytes());
-		attachment.setContentType("test content type");
-		attachment.setId(attachmentId);
-		attachment.setName(attachmentName);
-		return attachment;
-	}
+	public static List<Attachment> createManyAttachments(String xmlTemplateString, Map<String, String> templateValues,
+			String... attachmentParameterMatrix) {
 
-	public static Stream<Attachment> createAttachmentsForLargeXml() {
-		String[] templateValues = {
-				DOCX1_ATTACHMENT_ID, "Document1.docx",
-				PDF_ATTACHMENT_ID, "Document2.pdf",
-				DOCX2_ATTACHMENT_ID, "Document3.docx",
-				DOCX3_ATTACHMENT_ID, "Document4.docx",
-				DOCX4_ATTACHMENT_ID, "Document5.docx",
-				DOCX5_ATTACHMENT_ID, "Document6.docx",
-				DOCX6_ATTACHMENT_ID, "Document7.docx",
-				DOCX7_ATTACHMENT_ID, "Document8.docx",
-				DOCX8_ATTACHMENT_ID, "Document9.docx",
-				PDF2_ATTACHMENT_ID, "Document9.pdf",
-				ODT_ATTACHMENT_ID, "Document10.odt",
-				JPG_ATTACHMENT_ID, "Document11.jpg",
-				PNG_ATTACHMENT_ID, "Document12.png",
-		};
-
-		return arrayToMap(templateValues).entrySet().stream()
-				.map(entry -> createWithIdAndName(entry.getKey(), entry.getValue()));
-	}
+		var metaAttachments = arrayToMetaAttachments(attachmentParameterMatrix);
 
-	public static Attachment createLargeXmlDaten() {
-		String[] templateValues = {
-				"fileid-docx1", DOCX1_ATTACHMENT_ID,
-				"fileid-docx2", DOCX2_ATTACHMENT_ID,
-				"fileid-docx3", DOCX3_ATTACHMENT_ID,
-				"fileid-docx4", DOCX4_ATTACHMENT_ID,
-				"fileid-docx5", DOCX5_ATTACHMENT_ID,
-				"fileid-docx6", DOCX6_ATTACHMENT_ID,
-				"fileid-docx7", DOCX7_ATTACHMENT_ID,
-				"fileid-docx8", DOCX8_ATTACHMENT_ID,
-				"fileid-pdf1", PDF_ATTACHMENT_ID,
-				"fileid-pdf2", PDF2_ATTACHMENT_ID,
-				"fileid-png1", PNG_ATTACHMENT_ID,
-				"fileid-jpg1", JPG_ATTACHMENT_ID,
-				"fileid-odt1", ODT_ATTACHMENT_ID,
-				"oeid", ORGANISATIONSEINHEITEN_ID,
-				"uuid", UUID.randomUUID().toString(),
-				"transactionId", UUID.randomUUID().toString(),
-				"now", Instant.now().toString(),
-				"antragsteller_anrede", ANTRAGSTELLER_ANREDE,
-				"anrede_code", ANTRAGSTELLER_ANREDE_CODE,
-				"antragsteller_nachname", ANTRAGSTELLER_NACHNAME,
-				"antragsteller_vorname", "Max",
-				"antragsteller_email", "max.mustermann@example.com"
-		};
+		var allTemplateValues = Stream.concat(
+				templateValues.entrySet().stream(),
+				metaAttachments.stream().map(metaAttachment -> Map.entry(metaAttachment.templateId, metaAttachment.id))
+		).collect(toMap(Map.Entry::getKey, Map.Entry::getValue));
 
 		var xmlFormString = fillTemplateString(
-				TestUtils.loadTextFile("intelliform/XML-Daten-complex.template.xml"),
-				arrayToMap(templateValues));
-		return createXmlDatenWithContent(xmlFormString.getBytes());
+				xmlTemplateString,
+				allTemplateValues
+		);
+
+		return Stream.concat(
+				Stream.of(createXmlDatenWithContent(xmlFormString)),
+				metaAttachments.stream().map(AttachmentTestFactory::createAttachment)
+		).toList();
 	}
 
-	private static Attachment createXmlDatenWithContent(byte[] content) {
-		var attachment = new Attachment();
-		attachment.getAttributes().add(createAttributesEntry());
-		attachment.setContentType(XML_CONTENT_TYPE);
-		attachment.setId(XML_ATTACHMENT_ID);
-		attachment.setName(XML_NAME);
-		attachment.setContent(content);
-		return attachment;
+	private static Attachment createXmlDatenWithContent(String content) {
+		return createAttachment(MetaAttachment.builder()
+				.id(XML_ATTACHMENT_ID)
+				.name(XML_NAME)
+				.contentType(XML_CONTENT_TYPE)
+				.content(content)
+				.build()
+		);
+	}
+
+	@Builder
+	private record MetaAttachment(String id, String name, String contentType, String content, String templateId) {
 	}
 
-	public static Map<String, String> arrayToMap(String[] array) {
-		if (array.length % 2 != 0) {
-			throw new IllegalArgumentException("Array length must be even to form key-value pairs.");
+	private static List<MetaAttachment> arrayToMetaAttachments(String[] array) {
+		int parameterCount = 5;
+		if (array.length % parameterCount != 0) {
+			throw new IllegalArgumentException("Matrix length must be divisible by %d.".formatted(parameterCount));
 		}
 
-		return IntStream.range(0, array.length / 2)
+		return IntStream.range(0, array.length / parameterCount)
 				.boxed()
-				.collect(toMap(i -> array[2 * i], i -> array[2 * i + 1]));
+				.map(row -> row * parameterCount)
+				.map(offset -> new MetaAttachment(array[offset], array[offset + 1], array[offset + 2], array[offset + 3], array[offset + 4]))
+				.toList();
 	}
 
 	private static String fillTemplateString(String templateString, Map<String, String> templateValues) {
diff --git a/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositDataMapperTest.java b/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositDataMapperTest.java
index bc6367e4cad7f32d3112836edb4678e49ccf8f16..53aa6003c9e0595b8df9e4f534ca82c2f0e91b6e 100644
--- a/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositDataMapperTest.java
+++ b/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositDataMapperTest.java
@@ -326,7 +326,7 @@ class DepositDataMapperTest {
 		void shouldHaveContentType() {
 			var incomingFile = doMapping();
 
-			assertThat(incomingFile.getName()).isEqualTo(XML_NAME);
+			assertThat(incomingFile.getContentType()).isEqualTo(XML_CONTENT_TYPE);
 		}
 
 		@DisplayName("should have size")
@@ -334,7 +334,7 @@ class DepositDataMapperTest {
 		void shouldHaveSize() {
 			var incomingFile = doMapping();
 
-			assertThat(incomingFile.getSize()).isEqualTo(XML_CONTENT.length);
+			assertThat(incomingFile.getSize()).isEqualTo(XML_CONTENT.getBytes().length);
 		}
 
 		@DisplayName("should have file with content")
diff --git a/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositDataTestFactory.java b/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositDataTestFactory.java
index 45e91ec055c4b13b79dd0082bc22c8599bfbaa71..e6382bf2009f146b5fa4c176a8caa8c0f632d338 100644
--- a/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositDataTestFactory.java
+++ b/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositDataTestFactory.java
@@ -23,9 +23,15 @@
  */
 package de.ozgcloud.eingang.intelliform;
 
+import static de.ozgcloud.eingang.intelliform.AttachmentTestFactory.*;
+
+import java.time.Instant;
 import java.util.Collection;
 import java.util.List;
-import java.util.stream.Stream;
+import java.util.Map;
+import java.util.UUID;
+
+import de.ozgcloud.common.test.TestUtils;
 
 public class DepositDataTestFactory {
 
@@ -35,10 +41,32 @@ public class DepositDataTestFactory {
 			AttachmentTestFactory.createPng()
 	);
 
-	public static final List<Attachment> MANY_ATTACHMENTS = Stream.concat(
-			Stream.of(AttachmentTestFactory.createLargeXmlDaten()),
-			AttachmentTestFactory.createAttachmentsForLargeXml()
-	).toList();
+	public static final List<Attachment> MANY_ATTACHMENTS = createManyAttachments(
+			TestUtils.loadTextFile("intelliform/XML-Daten-complex.template.xml"),
+			Map.of(
+					"oeid", ORGANISATIONSEINHEITEN_ID,
+					"uuid", UUID.randomUUID().toString(),
+					"transactionId", UUID.randomUUID().toString(),
+					"now", Instant.now().toString(),
+					"antragsteller_anrede", ANTRAGSTELLER_ANREDE,
+					"anrede_code", ANTRAGSTELLER_ANREDE_CODE,
+					"antragsteller_nachname", ANTRAGSTELLER_NACHNAME,
+					"antragsteller_vorname", "Max",
+					"antragsteller_email", "max.mustermann@example.com"
+			),
+			DOCX1_ATTACHMENT_ID, "Document1.docx", DOCX_ATTACHMENT_CONTENT_TYPE, DOCX_ATTACHMENT_CONTENT, "fileid-docx1",
+			PDF_ATTACHMENT_ID, "Document2.pdf", PDF_ATTACHMENT_CONTENT_TYPE, PDF_ATTACHMENT_CONTENT, "fileid-pdf1",
+			DOCX2_ATTACHMENT_ID, "Document3.docx", DOCX_ATTACHMENT_CONTENT_TYPE, DOCX_ATTACHMENT_CONTENT, "fileid-docx2",
+			DOCX3_ATTACHMENT_ID, "Document4.docx", DOCX_ATTACHMENT_CONTENT_TYPE, DOCX_ATTACHMENT_CONTENT, "fileid-docx3",
+			DOCX4_ATTACHMENT_ID, "Document5.docx", DOCX_ATTACHMENT_CONTENT_TYPE, DOCX_ATTACHMENT_CONTENT, "fileid-docx4",
+			DOCX5_ATTACHMENT_ID, "Document6.docx", DOCX_ATTACHMENT_CONTENT_TYPE, DOCX_ATTACHMENT_CONTENT, "fileid-docx5",
+			DOCX6_ATTACHMENT_ID, "Document7.docx", DOCX_ATTACHMENT_CONTENT_TYPE, DOCX_ATTACHMENT_CONTENT, "fileid-docx6",
+			DOCX7_ATTACHMENT_ID, "Document8.docx", DOCX_ATTACHMENT_CONTENT_TYPE, DOCX_ATTACHMENT_CONTENT, "fileid-docx7",
+			DOCX8_ATTACHMENT_ID, "Document9.docx", DOCX_ATTACHMENT_CONTENT_TYPE, DOCX_ATTACHMENT_CONTENT, "fileid-docx8",
+			PDF2_ATTACHMENT_ID, "Document9.pdf", PDF_ATTACHMENT_CONTENT_TYPE, PDF_ATTACHMENT_CONTENT, "fileid-pdf2",
+			ODT_ATTACHMENT_ID, "Document10.odt", ODT_ATTACHMENT_CONTENT_TYPE, "TestContent5", "fileid-odt1",
+			JPG_ATTACHMENT_ID, "Document11.jpg", "image/jpeg", "TestContent6", "fileid-jpg1",
+			PNG_ATTACHMENT_ID, "Document12.png", "image/png", "TestContent7", "fileid-png1");
 
 	public static DepositData create(Collection<Attachment> attachments) {
 		var depositData = new DepositData();