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()); } }