diff --git a/forwarder/pom.xml b/forwarder/pom.xml
index c094433354d532b54e8d00623e939137184eebf8..d79e4343e1025fac4f58cc692215ed589795f60d 100644
--- a/forwarder/pom.xml
+++ b/forwarder/pom.xml
@@ -91,6 +91,19 @@
 			<groupId>de.ozgcloud.eingang</groupId>
 			<artifactId>common</artifactId>
 			<type>test-jar</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>de.ozgcloud.eingang</groupId>
+			<artifactId>router</artifactId>
+			<type>test-jar</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>de.ozgcloud.vorgang</groupId>
+			<artifactId>vorgang-manager-utils</artifactId>
+			<type>test-jar</type>
+			<scope>test</scope>
 		</dependency>
 	</dependencies>
 
diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRouteForwardingRequestTestFactory.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRouteForwardingRequestTestFactory.java
index 03c5beaeddc4b13c6dd1f8ad51459f63097bd951..37f758e1d65ca05e71b57beedd24a48170a24ec8 100644
--- a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRouteForwardingRequestTestFactory.java
+++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRouteForwardingRequestTestFactory.java
@@ -23,16 +23,23 @@
  */
 package de.ozgcloud.eingang.forwarder;
 
+import de.ozgcloud.eingang.forwarding.GrpcRouteCriteria;
 import de.ozgcloud.eingang.forwarding.GrpcRouteForwardingRequest;
+import de.ozgcloud.eingang.router.GrpcEingangTestFactory;
+import de.ozgcloud.vorgang.vorgang.GrpcEingang;
 
 public class GrpcRouteForwardingRequestTestFactory {
 
+	public static final GrpcEingang EINGANG = GrpcEingangTestFactory.create();
+	public static final GrpcRouteCriteria CRITERIA = RouteCriteriaTestFactory.createGrpc();
+
 	public static GrpcRouteForwardingRequest create() {
 		return createBuilder().build();
 	}
 
 	public static GrpcRouteForwardingRequest.Builder createBuilder() {
 		return GrpcRouteForwardingRequest.newBuilder()
-				.setRouteCriteria(RouteCriteriaTestFactory.createGrpc());
+				.setEingang(EINGANG)
+				.setRouteCriteria(CRITERIA);
 	}
 }
diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteForwardingGrpcServiceTest.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteForwardingGrpcServiceTest.java
index e4dd78ddb466c0538814676dd3f8587fa550782c..e165091ee8a18bc011ff607c418d20448e2d7f32 100644
--- a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteForwardingGrpcServiceTest.java
+++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteForwardingGrpcServiceTest.java
@@ -23,19 +23,17 @@
  */
 package de.ozgcloud.eingang.forwarder;
 
-import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
-import org.mapstruct.factory.Mappers;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
-import org.mockito.Spy;
 
+import de.ozgcloud.eingang.common.formdata.FormData;
+import de.ozgcloud.eingang.common.formdata.FormDataTestFactory;
 import de.ozgcloud.eingang.forwarding.GrpcRouteForwardingResponse;
 import de.ozgcloud.eingang.router.GrpcEingangMapper;
 import io.grpc.stub.StreamObserver;
@@ -50,39 +48,42 @@ class RouteForwardingGrpcServiceTest {
 
 	@Mock
 	private RouteForwardingService routeService;
-	@Spy
-	private RouteCriteriaMapper criteriaMapper = Mappers.getMapper(RouteCriteriaMapper.class);
-	@Spy
-	private GrpcEingangMapper eingangMapper = Mappers.getMapper(GrpcEingangMapper.class);
+	@Mock
+	private RouteCriteriaMapper criteriaMapper;
+	@Mock
+	private GrpcEingangMapper eingangMapper;
 
 	@Nested
 	class TestRouteForwarding {
 
-		@Captor
-		private ArgumentCaptor<RouteCriteria> criteriaCaptor;
+		private final RouteCriteria routeCriteria = RouteCriteriaTestFactory.create();
+		private final FormData formData = FormDataTestFactory.create();
+
+		@BeforeEach
+		void mock() {
+			when(criteriaMapper.fromGrpc(any())).thenReturn(routeCriteria);
+			when(eingangMapper.toFormData(any())).thenReturn(formData);
+		}
 
 		@Test
-		void shouldCallService() {
+		void shouldMapCriteria() {
 			service.routeForwarding(GrpcRouteForwardingRequestTestFactory.create(), responseObserver);
 
-			verify(routeService).route(any(), any());
+			verify(criteriaMapper).fromGrpc(GrpcRouteForwardingRequestTestFactory.CRITERIA);
 		}
 
 		@Test
-		void shouldHaveRouteCriteria() {
+		void shouldMapEingang() {
 			service.routeForwarding(GrpcRouteForwardingRequestTestFactory.create(), responseObserver);
 
-			verify(routeService).route(criteriaCaptor.capture(), any());
-
-			assertThat(criteriaCaptor.getValue()).usingRecursiveComparison().isEqualTo(RouteCriteriaTestFactory.create());
+			verify(eingangMapper).toFormData(GrpcRouteForwardingRequestTestFactory.EINGANG);
 		}
 
 		@Test
-		void shouldHaveFormData() {
+		void shouldCallService() {
 			service.routeForwarding(GrpcRouteForwardingRequestTestFactory.create(), responseObserver);
 
-			verify(routeService).route(any(), notNull());
-			verify(eingangMapper).toFormData(any());
+			verify(routeService).route(routeCriteria, formData);
 		}
 	}
 
diff --git a/pom.xml b/pom.xml
index ce7c182f5e8169cd94182f41dd29ae3f3f1cfe06..4eb2c25782b5783e4a42dbc4819a3340002bc53d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -126,6 +126,13 @@
 				<scope>test</scope>
 				<version>${project.version}</version>
 			</dependency>
+			<dependency>
+				<groupId>de.ozgcloud.eingang</groupId>
+				<artifactId>router</artifactId>
+				<version>${project.version}</version>
+				<type>test-jar</type>
+				<scope>test</scope>
+			</dependency>
 			<dependency>
 				<groupId>de.ozgcloud.vorgang</groupId>
 				<artifactId>vorgang-manager-utils</artifactId>
diff --git a/router/pom.xml b/router/pom.xml
index 7130d2c1e52b111ebd0b1600c9ad76e614fcb97b..5964dfb911aacd26259e5fb7dab11ea60b5567d2 100644
--- a/router/pom.xml
+++ b/router/pom.xml
@@ -92,10 +92,28 @@
 			<type>test-jar</type>
 			<scope>test</scope>
 		</dependency>
+		<dependency>
+			<groupId>de.ozgcloud.vorgang</groupId>
+			<artifactId>vorgang-manager-utils</artifactId>
+			<type>test-jar</type>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 
 	<build>
 		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<executions>
+					<execution>
+						<goals>
+							<goal>test-jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+
 			<plugin>
 				<groupId>org.jacoco</groupId>
 				<artifactId>jacoco-maven-plugin</artifactId>
diff --git a/router/src/test/java/de/ozgcloud/eingang/router/GrpcEingangMapperITCase.java b/router/src/test/java/de/ozgcloud/eingang/router/GrpcEingangMapperITCase.java
index 55e1b3ef348ce7c2f4a0bb418ef36195d0d56276..758fcd0ef1e924d7161e08eae22ee38325b7da3c 100644
--- a/router/src/test/java/de/ozgcloud/eingang/router/GrpcEingangMapperITCase.java
+++ b/router/src/test/java/de/ozgcloud/eingang/router/GrpcEingangMapperITCase.java
@@ -29,7 +29,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
@@ -38,6 +37,7 @@ import org.springframework.boot.test.context.SpringBootTest;
 
 import de.ozgcloud.eingang.common.formdata.AntragstellerTestFactory;
 import de.ozgcloud.eingang.common.formdata.FormDataTestFactory;
+import de.ozgcloud.eingang.common.formdata.IncomingFileGroupTestFactory;
 import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory;
 import de.ozgcloud.eingang.common.formdata.ZustaendigeStelleTestFactory;
 import de.ozgcloud.vorgang.vorgang.GrpcEingang;
@@ -59,7 +59,9 @@ class GrpcEingangMapperITCase {
 
 			@Test
 			void antragstellerShouldBeMapped() {
-				var antragSteller = grpcEingangMapper.toEingang(FormDataTestFactory.create(), Optional.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID)).getAntragsteller();
+				var antragSteller = grpcEingangMapper
+						.toEingang(FormDataTestFactory.create(), Optional.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID))
+						.getAntragsteller();
 
 				assertThat(antragSteller.getPostfachId()).isEqualTo(AntragstellerTestFactory.POSTFACH_ID);
 				assertThat(antragSteller.getVorname()).isEqualTo(AntragstellerTestFactory.VORNAME);
@@ -68,7 +70,9 @@ class GrpcEingangMapperITCase {
 
 			@Test
 			void dataShouldBeMapped() {
-				var antragsteller = grpcEingangMapper.toEingang(FormDataTestFactory.create(), Optional.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID)).getAntragsteller();
+				var antragsteller = grpcEingangMapper
+						.toEingang(FormDataTestFactory.create(), Optional.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID))
+						.getAntragsteller();
 
 				assertThat(antragsteller.getOtherData().getFieldList()).hasSize(1);
 				assertThat(antragsteller.getOtherData().getField(0).getName()).isEqualTo(AntragstellerTestFactory.GEBIET_BEZEICHNUNG_KEY);
@@ -81,7 +85,9 @@ class GrpcEingangMapperITCase {
 		class TestZustaendigeStelle {
 			@Test
 			void eingangShouldHaveZustaendigeStelle() {
-				var zustaendigeStelle = grpcEingangMapper.toEingang(FormDataTestFactory.create(), Optional.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID)).getZustaendigeStelle();
+				var zustaendigeStelle = grpcEingangMapper
+						.toEingang(FormDataTestFactory.create(), Optional.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID))
+						.getZustaendigeStelle();
 
 				assertThat(zustaendigeStelle).isNotNull();
 				assertThat(zustaendigeStelle.getOrganisationseinheitenId()).isEqualTo(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID);
@@ -102,34 +108,30 @@ class GrpcEingangMapperITCase {
 		@DisplayName("Test mapped Attachments")
 		class TestAttachments {
 
-			private GrpcEingang eingang;
-
-			@BeforeEach
-			void init() {
-
-				eingang = grpcEingangMapper.toEingang(FormDataTestFactory.create(), Optional.empty());
-			}
-
 			@Test
 			void validateNumberOfAttachments() {
+				var eingang = grpcEingangMapper.toEingang(FormDataTestFactory.create(), Optional.empty());
 
-				assertThat(eingang.getNumberOfAttachments()).isEqualTo(2);
+				assertThat(eingang.getNumberOfAttachments()).isEqualTo(FormDataTestFactory.ATTACHMENTS.size());
 			}
 
 			@Test
 			void validateNumberOfAttachmentGroups() {
+				var eingang = grpcEingangMapper.toEingang(FormDataTestFactory.create(), Optional.empty());
 
-				assertThat(eingang.getAttachmentsCount()).isEqualTo(2);
+				assertThat(eingang.getAttachmentsCount()).isEqualTo(FormDataTestFactory.ATTACHMENTS.size());
 			}
 
 			@Test
 			void validateGroup1AttachmentCount() {
+				var eingang = grpcEingangMapper.toEingang(FormDataTestFactory.create(), Optional.empty());
 
 				assertThat(eingang.getAttachmentsList().get(0).getFilesCount()).isEqualTo(1);
 			}
 
 			@Test
 			void validateGroup1Attachment() {
+				var eingang = grpcEingangMapper.toEingang(FormDataTestFactory.create(), Optional.empty());
 
 				GrpcIncomingFile attachment = eingang.getAttachmentsList().get(0).getFilesList().get(0);
 
@@ -142,12 +144,18 @@ class GrpcEingangMapperITCase {
 
 			@Test
 			void validateGroup2AttachmentCount() {
+				var attachmentGroup2 = IncomingFileGroupTestFactory.createBuilder().name("attachmentGroup2").build();
+
+				var eingang = grpcEingangMapper.toEingang(FormDataTestFactory.createBuilder().attachment(attachmentGroup2).build(), Optional.empty());
 
 				assertThat(eingang.getAttachmentsList().get(1).getFilesCount()).isEqualTo(1);
 			}
 
 			@Test
 			void validateGroup2Attachment() {
+				var attachmentGroup2 = IncomingFileGroupTestFactory.createBuilder().name("attachmentGroup2").build();
+
+				var eingang = grpcEingangMapper.toEingang(FormDataTestFactory.createBuilder().attachment(attachmentGroup2).build(), Optional.empty());
 
 				GrpcIncomingFile attachment = eingang.getAttachmentsList().get(1).getFilesList().get(0);
 
@@ -187,7 +195,8 @@ class GrpcEingangMapperITCase {
 			void valueListShouldGenerateFields() {
 
 				GrpcEingang eingang = grpcEingangMapper
-						.toEingang(FormDataTestFactory.createBuilder().formData(Map.of("key", List.of("value1", "value2"))).build(), Optional.empty());
+						.toEingang(FormDataTestFactory.createBuilder().formData(Map.of("key", List.of("value1", "value2"))).build(),
+								Optional.empty());
 
 				assertThat(eingang.getFormData().getFieldCount()).isEqualTo(2);
 			}
@@ -197,7 +206,8 @@ class GrpcEingangMapperITCase {
 
 				GrpcEingang eingang = grpcEingangMapper
 						.toEingang(FormDataTestFactory.createBuilder()
-								.formData(Map.of("key-1", List.of(Map.of("sub_key", "value1"), Map.of("sub_key", "value2")))).build(), Optional.empty());
+								.formData(Map.of("key-1", List.of(Map.of("sub_key", "value1"), Map.of("sub_key", "value2")))).build(),
+								Optional.empty());
 
 				assertThat(eingang.getFormData().getFormCount()).isEqualTo(2);
 				assertThat(eingang.getFormData().getForm(0).getFieldCount()).isEqualTo(1);
diff --git a/router/src/test/java/de/ozgcloud/eingang/router/VorgangServiceTest.java b/router/src/test/java/de/ozgcloud/eingang/router/VorgangServiceTest.java
index d69b36c664c87f2ad0116cf5e8f2e033a1358ec2..bd5ff001ac043671b3760e34a6921ac5c71b844e 100644
--- a/router/src/test/java/de/ozgcloud/eingang/router/VorgangServiceTest.java
+++ b/router/src/test/java/de/ozgcloud/eingang/router/VorgangServiceTest.java
@@ -27,6 +27,8 @@ import static de.ozgcloud.eingang.common.formdata.FormDataTestFactory.*;
 import static java.util.Collections.*;
 import static org.assertj.core.api.Assertions.*;
 import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.*;
 
 import java.io.IOException;
@@ -152,7 +154,7 @@ class VorgangServiceTest {
 		void shouldReturnAttachmentsAndRepresentations() {
 			var files = service.getFormDataFiles(formData).toList();
 
-			assertThat(files).hasSize(3);
+			assertThat(files).hasSize(FormDataTestFactory.ATTACHMENTS.size() + FormDataTestFactory.REPRESENTATIONS.size());
 		}
 	}