diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/bescheid/BescheidExportInput.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/bescheid/BescheidExportInput.java index 2eaa029e52aa5080b6aabcc85a611af051072b00..aa25d85adf81618ded8e2c62097275c011c90313 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/bescheid/BescheidExportInput.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/bescheid/BescheidExportInput.java @@ -3,6 +3,8 @@ package de.ozgcloud.alfa.bescheid; import java.util.List; import de.ozgcloud.alfa.common.file.OzgFile; +import lombok.Builder; +@Builder record BescheidExportInput(Bescheid bescheid, String organisationseinheitenId, List<OzgFile> files) { } diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/bescheid/ExportBescheidService.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/bescheid/ExportBescheidService.java index 1d66ad45f4a52597ed08fa0aa41aa6a93489e45c..8e29ef7f84f7b75f66b8df3ca5254cbf9c6eace3 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/bescheid/ExportBescheidService.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/bescheid/ExportBescheidService.java @@ -1,6 +1,5 @@ package de.ozgcloud.alfa.bescheid; -import java.util.List; import java.util.stream.Stream; import org.springframework.stereotype.Service; @@ -32,16 +31,18 @@ public class ExportBescheidService { } BescheidExportInput createBescheidExportInput(Bescheid bescheid, VorgangWithEingang vorgang) { - return new BescheidExportInput(bescheid, vorgang.getOrganisationseinheitenID(), getAttachments(bescheid)); + return BescheidExportInput.builder() + .bescheid(bescheid) + .organisationseinheitenId(vorgang.getOrganisationseinheitenID()) + .files(Stream.concat(Stream.of(getDocument(bescheid)), getAttachments(bescheid)).toList()).build(); } - List<OzgFile> getAttachments(Bescheid bescheid) { - return binaryFileService.getFiles(bescheid.getAttachments()).toList(); + Stream<OzgFile> getAttachments(Bescheid bescheid) { + return binaryFileService.getFiles(bescheid.getAttachments()); } void addBescheidExportData(BescheidExportInput input, BescheidExportData.BescheidExportDataBuilder builder) { builder.dokumentType(buildDokumentType(input)) - .file(getDocument(input.bescheid())) .files(input.files()); } diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/bescheid/BescheidExportInputTestFactory.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/bescheid/BescheidExportInputTestFactory.java index 0051086930bbbe289f68949dc244733f7e5ab218..fbee5d69b45774fcfac881ab2f4550284704c447 100644 --- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/bescheid/BescheidExportInputTestFactory.java +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/bescheid/BescheidExportInputTestFactory.java @@ -10,10 +10,17 @@ public class BescheidExportInputTestFactory { public final static Bescheid BESCHEID = BescheidTestFactory.create(); public final static String ORGANISATIONSEINHEITEN_ID = ZustaendigeStelleTestFactory.ORGANISATIONSEINHEITEN_ID; - public final static List<OzgFile> ATTACHMENTS = List.of(OzgFileTestFactory.createWithUniqueId()); + public final static List<OzgFile> FILES = List.of(OzgFileTestFactory.createWithUniqueId()); public static BescheidExportInput create() { - return new BescheidExportInput(BESCHEID, ORGANISATIONSEINHEITEN_ID, ATTACHMENTS); + return createBuilder().build(); + } + + public static BescheidExportInput.BescheidExportInputBuilder createBuilder() { + return BescheidExportInput.builder() + .bescheid(BESCHEID) + .organisationseinheitenId(ORGANISATIONSEINHEITEN_ID) + .files(FILES); } } diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/bescheid/ExportBescheidServiceTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/bescheid/ExportBescheidServiceTest.java index 126aab998d2b46b39b5b8e5c2340f6200fe2adee..bd8d907e7cc79c9830cebdcb81e4061609657396 100644 --- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/bescheid/ExportBescheidServiceTest.java +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/bescheid/ExportBescheidServiceTest.java @@ -154,10 +154,13 @@ class ExportBescheidServiceTest { class TestCreateBescheidExportInput { private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create(); private final Bescheid bescheid = BescheidTestFactory.create(); + private final OzgFile document = OzgFileTestFactory.create(); + private final OzgFile attachment = OzgFileTestFactory.create(); @BeforeEach void setUpMocks() { - doReturn(BescheidExportInputTestFactory.ATTACHMENTS).when(service).getAttachments(bescheid); + doReturn(Stream.of(attachment)).when(service).getAttachments(bescheid); + doReturn(document).when(service).getDocument(bescheid); } @Test @@ -167,11 +170,19 @@ class ExportBescheidServiceTest { verify(service).getAttachments(bescheid); } + @Test + void shouldCallGetDocument() { + callService(); + + verify(service).getDocument(bescheid); + } + @Test void shouldReturnInputData() { var resultInput = callService(); - assertThat(resultInput).usingRecursiveComparison().isEqualTo(BescheidExportInputTestFactory.create()); + assertThat(resultInput).usingRecursiveComparison() + .isEqualTo(BescheidExportInputTestFactory.createBuilder().files(List.of(document, attachment)).build()); } private BescheidExportInput callService() { @@ -243,7 +254,7 @@ class ExportBescheidServiceTest { @Nested class TestAddBescheidExportData { - private final List<OzgFile> attachments = BescheidExportInputTestFactory.ATTACHMENTS; + private final List<OzgFile> files = BescheidExportInputTestFactory.FILES; private final OzgFile document = OzgFileTestFactory.create(); private final DokumentType dokumentType = DokumentTypeTestFactory.create(); private final BescheidExportInput exportInput = BescheidExportInputTestFactory.create(); @@ -254,30 +265,14 @@ class ExportBescheidServiceTest { @BeforeEach void setUpMocks() { doReturn(dokumentType).when(service).buildDokumentType(exportInput); - doReturn(document).when(service).getDocument(exportInput.bescheid()); when(exportDataBuilder.dokumentType(dokumentType)).thenReturn(exportDataBuilder); - when(exportDataBuilder.file(document)).thenReturn(exportDataBuilder); - } - - @Test - void shouldGetDocument() { - callService(); - - verify(service).getDocument(exportInput.bescheid()); - } - - @Test - void shouldAddDocumentToBuilder() { - callService(); - - verify(exportDataBuilder).file(document); } @Test void shouldAddAttachmentsToBuilder() { callService(); - verify(exportDataBuilder).files(attachments); + verify(exportDataBuilder).files(files); } @Test @@ -303,7 +298,7 @@ class ExportBescheidServiceTest { class TestBuildDokumentType { private final BescheidExportInput exportInput = BescheidExportInputTestFactory.create(); private final Bescheid bescheid = BescheidExportInputTestFactory.BESCHEID; - private final List<OzgFile> attachments = BescheidExportInputTestFactory.ATTACHMENTS; + private final List<OzgFile> files = BescheidExportInputTestFactory.FILES; private final String fullName = UserProfileTestFactory.FULLNAME; private MockedStatic<DokumentTypeBuilder> dokumentTypeBuilderMockedStatic; @@ -316,7 +311,7 @@ class ExportBescheidServiceTest { dokumentTypeBuilderMockedStatic.when(DokumentTypeBuilder::builder).thenReturn(dokumentTypeBuilder); when(dokumentTypeBuilder.withBescheid(bescheid)).thenReturn(dokumentTypeBuilder); - when(dokumentTypeBuilder.withFiles(attachments)).thenReturn(dokumentTypeBuilder); + when(dokumentTypeBuilder.withFiles(files)).thenReturn(dokumentTypeBuilder); when(dokumentTypeBuilder.withFullName(fullName)).thenReturn(dokumentTypeBuilder); when(dokumentTypeBuilder.withOrganisationseinheitenId(BescheidExportInputTestFactory.ORGANISATIONSEINHEITEN_ID)) .thenReturn(dokumentTypeBuilder); @@ -347,7 +342,7 @@ class ExportBescheidServiceTest { void shouldBuildWithOzgFiles() { callService(); - verify(dokumentTypeBuilder).withFiles(attachments); + verify(dokumentTypeBuilder).withFiles(files); } @Test