diff --git a/common/src/test/java/de/ozgcloud/eingang/common/formdata/FormDataTestFactory.java b/common/src/test/java/de/ozgcloud/eingang/common/formdata/FormDataTestFactory.java index 94f756da0ce48a1286e5483afaec6928bb0ca43c..2dc3a7f665e7adc01738d8c7e7ff07ef4b919f3a 100644 --- a/common/src/test/java/de/ozgcloud/eingang/common/formdata/FormDataTestFactory.java +++ b/common/src/test/java/de/ozgcloud/eingang/common/formdata/FormDataTestFactory.java @@ -37,6 +37,8 @@ import lombok.NoArgsConstructor; @NoArgsConstructor(access = AccessLevel.PRIVATE) public class FormDataTestFactory { + public static final Antragsteller ANTRAGSTELLER = AntragstellerTestFactory.create(); + public static final FormHeader HEADER = FormHeaderTestFactory.create(); public static final String ID = UUID.randomUUID().toString(); public static final String SIMPLE_VALUE_KEY = "kontaktsystemtypid"; public static final String SIMPLE_VALUE = "233034600"; @@ -76,8 +78,8 @@ public class FormDataTestFactory { public static FormData.FormDataBuilder createBuilder() { return FormData.builder() .id(ID) - .header(FormHeaderTestFactory.create()) - .antragsteller(AntragstellerTestFactory.create()) + .header(HEADER) + .antragsteller(ANTRAGSTELLER) .zustaendigeStelle(ZustaendigeStelleTestFactory.create()) .control(FORM_DATA_CONTROL) .formData(FORM_DATA) diff --git a/eingang-manager-interface/src/main/protobuf/forward.model.proto b/eingang-manager-interface/src/main/protobuf/forward.model.proto index 963450aa4a9dc840b62348838b197cac75bef3a8..5b0c4a989ab6d31927aee1a2ceae52a24bd58809 100644 --- a/eingang-manager-interface/src/main/protobuf/forward.model.proto +++ b/eingang-manager-interface/src/main/protobuf/forward.model.proto @@ -56,7 +56,7 @@ message GrpcEingangStub { } message GrpcRouteCriteria { - string organisationseinheitenId = 1; + string organisationEinheitId = 1; } message GrpcAttachment { diff --git a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java index 4031741b077e26d2beb795750d9e099ce47a1c9a..8f6381157f1548fda31ef6187d770c16f7283f9d 100644 --- a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java +++ b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java @@ -84,7 +84,7 @@ public class EingangStubReceiverStreamObserver implements StreamObserver<GrpcRou if (Objects.nonNull(formData)) { throw new IllegalStateException("Received second RouteForwarding. Send only one per request."); } - formData = routeForwardingMapper.toFormData(routeForwarding.getEingangStub(), routeForwarding.getRouteCriteria()); + formData = routeForwardingMapper.toFormData(routeForwarding); } private void handleAttachment(GrpcAttachment attachment) { diff --git a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteCriteria.java b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteCriteria.java deleted file mode 100644 index 65583d7cfbf7a5eca3ad9c28bd59303712783798..0000000000000000000000000000000000000000 --- a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteCriteria.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2023 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.eingang.forwarder; - -import java.util.Optional; - -import lombok.Builder; -import lombok.Getter; - -@Getter -@Builder -public class RouteCriteria { - - private Optional<String> organisationEinheitId; -} diff --git a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteCriteriaMapper.java b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteCriteriaMapper.java deleted file mode 100644 index 7fcb6cea6b4b70b8b785e331dfbf7ecb5d2f67ed..0000000000000000000000000000000000000000 --- a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteCriteriaMapper.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2023 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.eingang.forwarder; - -import java.util.Optional; - -import org.apache.commons.lang3.StringUtils; -import org.mapstruct.Mapper; -import org.mapstruct.Mapping; - -import de.ozgcloud.eingang.forwarding.GrpcRouteCriteria; - -@Mapper -interface RouteCriteriaMapper { - - @Mapping(target = "organisationEinheitId", source = "organisationseinheitenId") - RouteCriteria fromGrpc(GrpcRouteCriteria grpcRouteCriteria); - - default Optional<String> wrapWithOptional(String val) { - return Optional.ofNullable(StringUtils.trimToNull(val)); - } -} diff --git a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteForwardingMapper.java b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteForwardingMapper.java index 315ba8131148d9d25a7701b1b82c222ccad2626a..5d519d5c9e817768dea9ffce13d20a2fc068d7b5 100644 --- a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteForwardingMapper.java +++ b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteForwardingMapper.java @@ -23,32 +23,44 @@ */ package de.ozgcloud.eingang.forwarder; -import java.util.Map; - import org.mapstruct.CollectionMappingStrategy; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.NullValueCheckStrategy; import org.mapstruct.NullValuePropertyMappingStrategy; -import org.mapstruct.ReportingPolicy; +import de.ozgcloud.eingang.common.formdata.Antragsteller; import de.ozgcloud.eingang.common.formdata.FormData; -import de.ozgcloud.eingang.forwarding.GrpcEingangStub; -import de.ozgcloud.eingang.forwarding.GrpcFormData; +import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle; import de.ozgcloud.eingang.forwarding.GrpcRouteCriteria; +import de.ozgcloud.eingang.forwarding.GrpcRouteForwarding; +import de.ozgcloud.eingang.router.ServiceKontoMapper; +import de.ozgcloud.vorgang.common.grpc.GrpcFormDataMapper; +import de.ozgcloud.vorgang.vorgang.GrpcAntragsteller; -@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN, // - nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE, // +@Mapper(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE, // nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, // - collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED) + collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED, // + uses = { ServiceKontoMapper.class, GrpcFormDataMapper.class }) public interface RouteForwardingMapper { + @Mapping(target = "id", ignore = true) + @Mapping(target = "attachment", ignore = true) @Mapping(target = "attachments", ignore = true) + @Mapping(target = "numberOfAttachments", ignore = true) + @Mapping(target = "representation", ignore = true) @Mapping(target = "representations", ignore = true) + @Mapping(target = "numberOfRepresentations", ignore = true) @Mapping(target = "control", ignore = true) - FormData toFormData(GrpcEingangStub eingangStub, GrpcRouteCriteria routeCriteria); // TODO: Test + @Mapping(target = "zustaendigeStelles", ignore = true) + @Mapping(target = ".", source = "eingangStub") + @Mapping(target = "zustaendigeStelle", source = "routeCriteria") + FormData toFormData(GrpcRouteForwarding routeForwarding); + + @Mapping(target = "data", source = "otherData") + Antragsteller mapAntragstellerFromGrpc(GrpcAntragsteller antragsteller); - default Map<String, Object> map(GrpcFormData value) { - return null; // TODO: Implement - }; + default ZustaendigeStelle toZustaendigeStelle(GrpcRouteCriteria routeCriteria) { + return ZustaendigeStelle.builder().organisationseinheitenId(routeCriteria.getOrganisationEinheitId()).build(); + } } diff --git a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteForwardingService.java b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteForwardingService.java index 13058871d8e820752231fee04f820418b9a79c97..8a455d31e3f3836f102d240467f1454b6aabd6ac 100644 --- a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteForwardingService.java +++ b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/RouteForwardingService.java @@ -26,7 +26,6 @@ package de.ozgcloud.eingang.forwarder; import org.springframework.stereotype.Service; import de.ozgcloud.eingang.common.formdata.FormData; -import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle; import de.ozgcloud.eingang.router.VorgangService; import lombok.RequiredArgsConstructor; @@ -36,15 +35,16 @@ class RouteForwardingService { private final VorgangService vorgangService; - public void route(RouteCriteria criteria, FormData formData) { - vorgangService.createVorgang(formData.toBuilder() - .clearZustaendigeStelles() - .zustaendigeStelle(ZustaendigeStelle.builder() - .organisationseinheitenId(criteria.getOrganisationEinheitId() - .orElseThrow(() -> new UnsupportedOperationException("OrganisationseinheitId is required!"))) - .build()) - .build()); - } + // public void route(RouteCriteria criteria, FormData formData) { + // vorgangService.createVorgang(formData.toBuilder() + // .clearZustaendigeStelles() + // .zustaendigeStelle(ZustaendigeStelle.builder() + // .organisationseinheitenId(criteria.getOrganisationEinheitId() + // .orElseThrow(() -> new UnsupportedOperationException("OrganisationseinheitId + // is required!"))) + // .build()) + // .build()); + // } public void route(FormData formData) { // TODO Auto-generated method stub diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcEingangStubTestFactory.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcEingangStubTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..ac07fe28f953d9402172d8342a0234da43c5a819 --- /dev/null +++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcEingangStubTestFactory.java @@ -0,0 +1,28 @@ +package de.ozgcloud.eingang.forwarder; + +import de.ozgcloud.eingang.forwarding.GrpcEingangStub; +import de.ozgcloud.eingang.forwarding.GrpcEingangStub.Builder; +import de.ozgcloud.eingang.router.GrpcAntragstellerTestFactory; +import de.ozgcloud.eingang.router.GrpcEingangHeaderTestFactory; +import de.ozgcloud.vorgang.common.grpc.GrpcFormDataTestFactory; +import de.ozgcloud.vorgang.vorgang.GrpcAntragsteller; +import de.ozgcloud.vorgang.vorgang.GrpcEingangHeader; +import de.ozgcloud.vorgang.vorgang.GrpcFormData; + +public class GrpcEingangStubTestFactory { + + public static final GrpcEingangHeader HEADER = GrpcEingangHeaderTestFactory.create(); + public static final GrpcAntragsteller ANTRAGSTELLER = GrpcAntragstellerTestFactory.create(); + public static final GrpcFormData FORM_DATA = GrpcFormDataTestFactory.create(); + + public static GrpcEingangStub create() { + return createBuilder().build(); + } + + public static Builder createBuilder() { + return GrpcEingangStub.newBuilder() + .setHeader(HEADER) + .setAntragsteller(ANTRAGSTELLER) + .setFormData(FORM_DATA); + } +} diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRouteCriteriaTestFactory.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRouteCriteriaTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..b10b58cc09a68556eee180557558fe6ffe21c27b --- /dev/null +++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRouteCriteriaTestFactory.java @@ -0,0 +1,21 @@ +package de.ozgcloud.eingang.forwarder; + +import java.util.UUID; + +import de.ozgcloud.eingang.forwarding.GrpcRouteCriteria; +import de.ozgcloud.eingang.forwarding.GrpcRouteCriteria.Builder; + +public class GrpcRouteCriteriaTestFactory { + + public static final String ORGANISATION_EINHEIT_ID = UUID.randomUUID().toString(); + + public static GrpcRouteCriteria create() { + return createBuilder().build(); + } + + public static Builder createBuilder() { + return GrpcRouteCriteria.newBuilder() + .setOrganisationEinheitId(ORGANISATION_EINHEIT_ID); + } + +} 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 ddd6a44d25ba98b0c757030b5439ecf8fbe2ceb2..9df66980d798c65b5d2eb35cbf3610d5691c1fc7 100644 --- a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRouteForwardingRequestTestFactory.java +++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRouteForwardingRequestTestFactory.java @@ -31,7 +31,7 @@ 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 final GrpcRouteCriteria CRITERIA = GrpcRouteCriteriaTestFactory.create(); public static GrpcRouteForwardingRequest create() { return createBuilder().build(); diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRouteForwardingTestFactory.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRouteForwardingTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..76192949b2e52651b6984584954fef6a95bc78d7 --- /dev/null +++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRouteForwardingTestFactory.java @@ -0,0 +1,23 @@ +package de.ozgcloud.eingang.forwarder; + +import de.ozgcloud.eingang.forwarding.GrpcEingangStub; +import de.ozgcloud.eingang.forwarding.GrpcRouteCriteria; +import de.ozgcloud.eingang.forwarding.GrpcRouteForwarding; +import de.ozgcloud.eingang.forwarding.GrpcRouteForwarding.Builder; + +public class GrpcRouteForwardingTestFactory { + + public static final GrpcRouteCriteria ROUTE_CRITERIA = GrpcRouteCriteriaTestFactory.create(); + public static final GrpcEingangStub EINGANG_STUB = GrpcEingangStubTestFactory.create(); + + public static GrpcRouteForwarding create() { + return createBuilder().build(); + } + + public static Builder createBuilder() { + return GrpcRouteForwarding.newBuilder() + .setEingangStub(EINGANG_STUB) + .setRouteCriteria(ROUTE_CRITERIA); + } + +} diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteCriteriaTestFactory.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteCriteriaTestFactory.java deleted file mode 100644 index 49c265a75f1ee39f30b54680894e98a43347dcc4..0000000000000000000000000000000000000000 --- a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteCriteriaTestFactory.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2023 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.eingang.forwarder; - -import java.util.Optional; -import java.util.UUID; - -import de.ozgcloud.eingang.forwarding.GrpcRouteCriteria; - -public class RouteCriteriaTestFactory { - - public static final String ORGANISATION_EINHEIT_ID = UUID.randomUUID().toString(); - - public static RouteCriteria create() { - return createBuilder().build(); - } - - public static RouteCriteria.RouteCriteriaBuilder createBuilder() { - return RouteCriteria.builder() - .organisationEinheitId(Optional.of(ORGANISATION_EINHEIT_ID)); - } - - public static GrpcRouteCriteria createGrpc() { - return createGrpcBuilder().build(); - } - - public static GrpcRouteCriteria.Builder createGrpcBuilder() { - return GrpcRouteCriteria.newBuilder() - .setOrganisationseinheitenId(ORGANISATION_EINHEIT_ID); - } -} diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteForwardingMapperTest.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteForwardingMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..c3475b803ecccc274d97b45ece197d0f9b87a04a --- /dev/null +++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteForwardingMapperTest.java @@ -0,0 +1,101 @@ +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.InjectMocks; +import org.mockito.Mock; + +import de.ozgcloud.eingang.common.formdata.AntragstellerTestFactory; +import de.ozgcloud.eingang.common.formdata.FormDataTestFactory; +import de.ozgcloud.eingang.common.formdata.ServiceKontoTestFactory; +import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle; +import de.ozgcloud.eingang.forwarding.GrpcRouteForwarding; +import de.ozgcloud.eingang.router.GrpcAntragstellerTestFactory; +import de.ozgcloud.eingang.router.GrpcEingangHeaderTestFactory; +import de.ozgcloud.eingang.router.ServiceKontoMapper; +import de.ozgcloud.vorgang.common.grpc.GrpcFormDataMapper; + +class RouteForwardingMapperTest { + + @InjectMocks + private RouteForwardingMapper mapper = Mappers.getMapper(RouteForwardingMapper.class); + + @Mock + private GrpcFormDataMapper grpcFormDataMapper; + @Mock + private ServiceKontoMapper serviceKontoMapper; + + @Nested + class TestToFormData { + + private final GrpcRouteForwarding routeForwarding = GrpcRouteForwardingTestFactory.create(); + + @BeforeEach + void mock() { + when(serviceKontoMapper.fromGrpc(any())).thenReturn(ServiceKontoTestFactory.create()); + when(grpcFormDataMapper.mapFromFormData(GrpcAntragstellerTestFactory.OTHER_DATA)).thenReturn(AntragstellerTestFactory.DATA); + when(grpcFormDataMapper.mapFromFormData(GrpcEingangStubTestFactory.FORM_DATA)).thenReturn(FormDataTestFactory.FORM_DATA); + } + + @Test + void shouldCallServiceKontoMapper() { + mapper.toFormData(routeForwarding); + + verify(serviceKontoMapper).fromGrpc(GrpcEingangHeaderTestFactory.SERVICE_KONTO); + } + + @Test + void shouldCallFormDataMapperWithAntragstellerData() { + mapper.toFormData(routeForwarding); + + verify(grpcFormDataMapper).mapFromFormData(GrpcAntragstellerTestFactory.OTHER_DATA); + } + + @Test + void shouldCallFormDataMapperWithFormData() { + mapper.toFormData(routeForwarding); + + verify(grpcFormDataMapper).mapFromFormData(GrpcEingangStubTestFactory.FORM_DATA); + } + + @Test + void shouldMapHeader() { + var formDataHeader = mapper.toFormData(routeForwarding).getHeader(); + + assertThat(formDataHeader).usingRecursiveComparison().isEqualTo(FormDataTestFactory.HEADER); + } + + @Test + void shouldMapAntragsteller() { + var expectedAntragSteller = AntragstellerTestFactory.createBuilder().firmaName(AntragstellerTestFactory.FIRMA_NAME).build(); + + var antragsteller = mapper.toFormData(routeForwarding).getAntragsteller(); + + assertThat(antragsteller).usingRecursiveComparison().isEqualTo(expectedAntragSteller); + } + + @Test + void shouldMapFormData() { + var formData = mapper.toFormData(routeForwarding).getFormData(); + + assertThat(formData).isSameAs(FormDataTestFactory.FORM_DATA); + } + + @Test + void shouldMapZustaendigeStelles() { + var expectedZustaendigeStelle = ZustaendigeStelle.builder() + .organisationseinheitenId(GrpcRouteCriteriaTestFactory.ORGANISATION_EINHEIT_ID) + .build(); + + var zustaendigeStelles = mapper.toFormData(routeForwarding).getZustaendigeStelles(); + + assertThat(zustaendigeStelles).usingRecursiveFieldByFieldElementComparator().containsExactly(expectedZustaendigeStelle); + } + } +} diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteForwardingServiceTest.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteForwardingServiceTest.java index e4c711fbc6b9ae53e3ff4b530541ee70d10418fa..f43db02d1aa55c86d3bd0e434c9d3648fa830d27 100644 --- a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteForwardingServiceTest.java +++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/RouteForwardingServiceTest.java @@ -1,13 +1,6 @@ package de.ozgcloud.eingang.forwarder; -import static org.assertj.core.api.Assertions.*; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; - -import java.util.Optional; - import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.InjectMocks; @@ -15,7 +8,6 @@ import org.mockito.Mock; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormDataTestFactory; -import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle; import de.ozgcloud.eingang.router.VorgangService; class RouteForwardingServiceTest { @@ -32,35 +24,37 @@ class RouteForwardingServiceTest { private final FormData formData = FormDataTestFactory.create(); - @Test - void shouldCallVorgangService() { - var criteria = RouteCriteriaTestFactory.create(); + // @Test + // void shouldCallVorgangService() { + // var criteria = RouteCriteriaTestFactory.create(); - routeForwardingService.route(criteria, formData); + // routeForwardingService.route(criteria, formData); - verify(vorgangService).createVorgang(formDataCaptor.capture()); - assertThat(formDataCaptor.getValue()).usingRecursiveComparison().ignoringFields("zustaendigeStelles").isEqualTo(formData); - } + // verify(vorgangService).createVorgang(formDataCaptor.capture()); + // assertThat(formDataCaptor.getValue()).usingRecursiveComparison().ignoringFields("zustaendigeStelles").isEqualTo(formData); + // } - @Test - void shouldSetOrganisationEinheitIdInFormData() { - var criteria = RouteCriteriaTestFactory.create(); - var expectedZustaendigeStelle = ZustaendigeStelle.builder() - .organisationseinheitenId(RouteCriteriaTestFactory.ORGANISATION_EINHEIT_ID) - .build(); + // @Test + // void shouldSetOrganisationEinheitIdInFormData() { + // var criteria = RouteCriteriaTestFactory.create(); + // var expectedZustaendigeStelle = ZustaendigeStelle.builder() + // .organisationseinheitenId(RouteCriteriaTestFactory.ORGANISATION_EINHEIT_ID) + // .build(); - routeForwardingService.route(criteria, formData); + // routeForwardingService.route(criteria, formData); - verify(vorgangService).createVorgang(formDataCaptor.capture()); - assertThat(formDataCaptor.getValue().getZustaendigeStelles()).usingRecursiveFieldByFieldElementComparator() - .containsExactly(expectedZustaendigeStelle); - } + // verify(vorgangService).createVorgang(formDataCaptor.capture()); + // assertThat(formDataCaptor.getValue().getZustaendigeStelles()).usingRecursiveFieldByFieldElementComparator() + // .containsExactly(expectedZustaendigeStelle); + // } - @Test - void shouldThrowUnsupportedOperationException() { - var criteria = RouteCriteriaTestFactory.createBuilder().organisationEinheitId(Optional.empty()).build(); + // @Test + // void shouldThrowUnsupportedOperationException() { + // var criteria = + // RouteCriteriaTestFactory.createBuilder().organisationEinheitId(Optional.empty()).build(); - assertThrows(UnsupportedOperationException.class, () -> routeForwardingService.route(criteria, formData)); - } + // assertThrows(UnsupportedOperationException.class, () -> + // routeForwardingService.route(criteria, formData)); + // } } } diff --git a/router/src/main/java/de/ozgcloud/eingang/router/ServiceKontoMapper.java b/router/src/main/java/de/ozgcloud/eingang/router/ServiceKontoMapper.java index 85b8a16857fe3cda1c21ec411888572c6d1e4287..97aed9ca47f8d3de4a560c577687186f56b4a7e3 100644 --- a/router/src/main/java/de/ozgcloud/eingang/router/ServiceKontoMapper.java +++ b/router/src/main/java/de/ozgcloud/eingang/router/ServiceKontoMapper.java @@ -48,7 +48,7 @@ import de.ozgcloud.vorgang.vorgang.GrpcServiceKonto; nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, // collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED, // uses = { GrpcObjectMapper.class }) -abstract class ServiceKontoMapper { +public abstract class ServiceKontoMapper { static final String DEFAULT_TRUST_LEVEL = "STORK-QAA-Level-1"; @@ -71,7 +71,7 @@ abstract class ServiceKontoMapper { @Mapping(target = "postfachAddresses", source = "postfachAddressesList") @Mapping(target = "trustLevel", source = "trustLevel", qualifiedByName = "mapTrustLevel") @Mapping(target = "postfachAddress", ignore = true) - abstract ServiceKonto fromGrpc(GrpcServiceKonto serviceKonto); + public abstract ServiceKonto fromGrpc(GrpcServiceKonto serviceKonto); PostfachAddressIdentifier mapToIdentifier(GrpcObject identifier) { var stringIdentifier = MapUtils.getString(grpcObjectMapper.mapFromGrpc(identifier), StringBasedIdentifier.POSTFACH_ID_FIELD);