From de104aea68c5554fb05b22995707e2202b32fb53 Mon Sep 17 00:00:00 2001 From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de> Date: Tue, 23 Apr 2024 18:11:06 +0200 Subject: [PATCH] fix mapping numberOfAttachments for GRPC --- .../common/formdata/FormDataTestFactory.java | 7 +++--- .../eingang/router/GrpcEingangMapper.java | 23 ++++++++++--------- .../router/GrpcEingangMapperITCase.java | 4 ++-- .../eingang/router/GrpcEingangMapperTest.java | 8 +++---- .../router/VorgangRemoteServiceTest.java | 2 +- ...FormSolutionsEngineBasedAdapterITCase.java | 3 ++- 6 files changed, 25 insertions(+), 22 deletions(-) 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 9c6844583..9dced378f 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 @@ -65,10 +65,11 @@ public class FormDataTestFactory { SUBFORM_KEY, SUBFORM_VALUE, NESTED_LIST_WITH_STRINGS_KEY, NESTED_LIST_WITH_STRINGS, NESTED_LIST_WITH_OBJECTS_KEY, NESTED_LIST_WITH_OBJECTS)) - // TODO zweites Attachment aus der TestFactory entfernen und die entsprechenden - // Tests anpassen .attachments(List.of(IncomingFileGroupTestFactory.create(), - IncomingFileGroupTestFactory.createBuilder().name(ATTACHMENT_GROUP_2).build())) + IncomingFileGroupTestFactory.createBuilder() + .name(ATTACHMENT_GROUP_2) + .file(IncomingFileTestFactory.create()) + .build())) .representations(List.of(IncomingFileTestFactory.create())); } diff --git a/router/src/main/java/de/ozgcloud/eingang/router/GrpcEingangMapper.java b/router/src/main/java/de/ozgcloud/eingang/router/GrpcEingangMapper.java index 965ee6f81..3a2bcc042 100644 --- a/router/src/main/java/de/ozgcloud/eingang/router/GrpcEingangMapper.java +++ b/router/src/main/java/de/ozgcloud/eingang/router/GrpcEingangMapper.java @@ -25,6 +25,7 @@ package de.ozgcloud.eingang.router; import java.util.List; +import de.ozgcloud.eingang.common.formdata.*; import org.mapstruct.CollectionMappingStrategy; import org.mapstruct.Mapper; import org.mapstruct.Mapping; @@ -32,10 +33,6 @@ 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.common.formdata.IncomingFileGroup; -import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle; import de.ozgcloud.vorgang.common.grpc.GrpcFormDataMapper; import de.ozgcloud.vorgang.vorgang.GrpcAntragsteller; import de.ozgcloud.vorgang.vorgang.GrpcEingang; @@ -50,15 +47,19 @@ import de.ozgcloud.vorgang.vorgang.GrpcZustaendigeStelle; uses = { GrpcFormDataMapper.class, ServiceKontoMapper.class }) public interface GrpcEingangMapper { - @Mapping(source = "antragsteller.data", target = "antragsteller.otherData") - @Mapping(source = "attachments", target = "attachmentsList") - @Mapping(source = "attachments", target = "numberOfAttachments") - @Mapping(source = "representations", target = "representationsList") - @Mapping(source = "representations", target = "numberOfRepresentations") + @Mapping(target = "antragsteller.otherData", source = "antragsteller.data") + @Mapping(target = "attachmentsList", source = "attachments") + @Mapping(target = "numberOfAttachments", source = "attachments") + @Mapping(target = "representationsList", source = "representations") + @Mapping(target = "numberOfRepresentations", source = "representations") GrpcEingang toEingang(FormData formData); - default int listToSize(List<?> list) { - return list.size(); + default int representationsToSize(List<IncomingFile> representations) { + return representations.size(); + } + + default int attachmentsToSize(List<IncomingFileGroup> attachments) { + return attachments.stream().mapToInt(group -> group.getFiles().size()).sum(); } @Mapping(source = "files", target = "filesList") 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 4150f6cef..d54bdf17b 100644 --- a/router/src/test/java/de/ozgcloud/eingang/router/GrpcEingangMapperITCase.java +++ b/router/src/test/java/de/ozgcloud/eingang/router/GrpcEingangMapperITCase.java @@ -106,7 +106,7 @@ class GrpcEingangMapperITCase { @Test void validateNumberOfAttachments() { - assertThat(eingang.getNumberOfAttachments()).isEqualTo(2); + assertThat(eingang.getNumberOfAttachments()).isEqualTo(3); } @Test @@ -136,7 +136,7 @@ class GrpcEingangMapperITCase { @Test void validateGroup2AttachmentCount() { - assertThat(eingang.getAttachmentsList().get(1).getFilesCount()).isEqualTo(1); + assertThat(eingang.getAttachmentsList().get(1).getFilesCount()).isEqualTo(2); } @Test diff --git a/router/src/test/java/de/ozgcloud/eingang/router/GrpcEingangMapperTest.java b/router/src/test/java/de/ozgcloud/eingang/router/GrpcEingangMapperTest.java index b0348cc39..207b534c4 100644 --- a/router/src/test/java/de/ozgcloud/eingang/router/GrpcEingangMapperTest.java +++ b/router/src/test/java/de/ozgcloud/eingang/router/GrpcEingangMapperTest.java @@ -125,7 +125,7 @@ class GrpcEingangMapperTest { void validateNumberOfAttachments() { var eingang = toEingang(); - assertThat(eingang.getNumberOfAttachments()).isEqualTo(2); + assertThat(eingang.getNumberOfAttachments()).isEqualTo(3); } @Test @@ -139,14 +139,14 @@ class GrpcEingangMapperTest { void validateGroup1AttachmentCount() { var eingang = toEingang(); - assertThat(eingang.getAttachmentsList().get(0).getFilesCount()).isEqualTo(1); + assertThat(eingang.getAttachmentsList().getFirst().getFilesCount()).isEqualTo(1); } @Test void validateGroup1Attachment() { var eingang = toEingang(); - var attachment = eingang.getAttachmentsList().get(0).getFilesList().get(0); + var attachment = eingang.getAttachmentsList().getFirst().getFilesList().getFirst(); assertThat(attachment.getId()).isEqualTo(IncomingFileTestFactory.ID); assertThat(attachment.getVendorId()).isEqualTo(IncomingFileTestFactory.VENDOR_ID); assertThat(attachment.getName()).isEqualTo(IncomingFileTestFactory.NAME); @@ -158,7 +158,7 @@ class GrpcEingangMapperTest { void validateGroup2AttachmentCount() { var eingang = toEingang(); - assertThat(eingang.getAttachmentsList().get(1).getFilesCount()).isEqualTo(1); + assertThat(eingang.getAttachmentsList().get(1).getFilesCount()).isEqualTo(2); } @Test diff --git a/router/src/test/java/de/ozgcloud/eingang/router/VorgangRemoteServiceTest.java b/router/src/test/java/de/ozgcloud/eingang/router/VorgangRemoteServiceTest.java index 60206de34..773d545d6 100644 --- a/router/src/test/java/de/ozgcloud/eingang/router/VorgangRemoteServiceTest.java +++ b/router/src/test/java/de/ozgcloud/eingang/router/VorgangRemoteServiceTest.java @@ -184,7 +184,7 @@ class VorgangRemoteServiceTest { void shouldCallUploadIncomingFile() { vorgangCreator.uploadAttachments(); - verify(vorgangCreator, times(2)).uploadIncomingFile(any(IncomingFile.class)); + verify(vorgangCreator, times(3)).uploadIncomingFile(any(IncomingFile.class)); } @Test diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapterITCase.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapterITCase.java index d7ea810f4..f548a7ca2 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapterITCase.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapterITCase.java @@ -126,8 +126,9 @@ public class FormSolutionsEngineBasedAdapterITCase { void shouldMapAttachment() { var data = engineAdapter.parseFormData(formData); - assertThat(data.getAttachments()).hasSize(2); + assertThat(data.getAttachments()).hasSize(1); assertThat(data.getAttachments().getFirst()).isNotNull(); + assertThat(data.getAttachments().getFirst().getFiles()).hasSize(2); } } -- GitLab