diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/export/ExportGrpcService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/export/ExportGrpcService.java index 65893226e8a3cf0cf17e40914a0eaa7241eb7e6b..5cae921c77dd9cff6425352d920c6bffab90984e 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/export/ExportGrpcService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/export/ExportGrpcService.java @@ -44,8 +44,6 @@ import net.devh.boot.grpc.server.service.GrpcService; @RequiredArgsConstructor class ExportGrpcService extends ExportServiceImplBase { - static final int CHUNK_SIZE = 256 * 1024; - private final ExportService exportService; private final TaskExecutor taskExecutor; diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/Kommentar.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/Kommentar.java index 40392316cbdc40e2435b751234b5d500d92a96cb..ade35f0b801efbb871cc0b7b814292e856bd8230 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/Kommentar.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/Kommentar.java @@ -29,6 +29,7 @@ import java.util.List; import de.ozgcloud.common.binaryfile.FileId; import lombok.Builder; import lombok.Getter; +import lombok.Singular; @Builder @Getter @@ -37,5 +38,6 @@ public class Kommentar { private String text; private ZonedDateTime createdAt; private String createdBy; + @Singular private List<FileId> attachments; } diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/KommentarMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/KommentarMapper.java index 64ebb6a1e531b23576480d35a5e2b6f4b7db9648..58c046aa4fe8c3335572c16159534cb4fd0fd2ba 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/KommentarMapper.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/KommentarMapper.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Objects; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; import org.mapstruct.NullValueCheckStrategy; import org.mapstruct.ReportingPolicy; import org.springframework.beans.factory.annotation.Autowired; @@ -55,6 +56,7 @@ abstract class KommentarMapper { return grpcObjectMapper.mapFromGrpc(item); } + @Mapping(target = "attachment", ignore = true) abstract Kommentar mapItemMapToKommentar(Map<String, Object> map); String mapObjectToString(Object object) { diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/kommentar/KommentarMapperTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/kommentar/KommentarMapperTest.java index d871e3824b8f5369bf8a9f459ef6561e023a4cb3..368c51bc64ae6d786f692ea54f203912811a455b 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/kommentar/KommentarMapperTest.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/kommentar/KommentarMapperTest.java @@ -145,101 +145,116 @@ class KommentarMapperTest { @Nested class TestMapItemMapToKommentar { - @BeforeEach - void init() { - doReturn(KommentarTestFactory.ID).when(mapper).mapObjectToString(KommentarTestFactory.ID); - doReturn(KommentarTestFactory.TEXT).when(mapper).mapObjectToString(KommentarTestFactory.TEXT); - doReturn(KommentarTestFactory.CREATED_BY).when(mapper).mapObjectToString(KommentarTestFactory.CREATED_BY); - doReturn(KommentarTestFactory.CREATED_AT_STR).when(mapper).mapObjectToString(KommentarTestFactory.CREATED_AT_STR); + @Nested + class OnAllFieldsSet { - when(timeMapper.parseString(KommentarTestFactory.CREATED_AT_STR)).thenReturn(KommentarTestFactory.CREATED_AT); - when(attachmentMapper.mapAttachments(argThat(this::isCollectionOfAttachmentIds))).thenReturn(KommentarTestFactory.ATTACHMENTS); - } + @BeforeEach + void init() { + doReturn(KommentarTestFactory.ID).when(mapper).mapObjectToString(KommentarTestFactory.ID); + doReturn(KommentarTestFactory.TEXT).when(mapper).mapObjectToString(KommentarTestFactory.TEXT); + doReturn(KommentarTestFactory.CREATED_BY).when(mapper).mapObjectToString(KommentarTestFactory.CREATED_BY); + doReturn(KommentarTestFactory.CREATED_AT_STR).when(mapper).mapObjectToString(KommentarTestFactory.CREATED_AT_STR); - @Test - void shouldMapIdToString() { - callMapper(); + when(timeMapper.parseString(KommentarTestFactory.CREATED_AT_STR)).thenReturn(KommentarTestFactory.CREATED_AT); + when(attachmentMapper.mapAttachments(argThat(this::isCollectionOfAttachmentIds))).thenReturn(KommentarTestFactory.ATTACHMENTS); + } - verify(mapper).mapObjectToString(KommentarTestFactory.ID); - } + @Test + void shouldMapIdToString() { + callMapper(); - @Test - void shouldMapId() { - var kommentar = callMapper(); + verify(mapper).mapObjectToString(KommentarTestFactory.ID); + } - assertThat(kommentar.getId()).isEqualTo(KommentarTestFactory.ID); - } + @Test + void shouldMapId() { + var kommentar = callMapper(); - @Test - void shouldMapTextToString() { - callMapper(); + assertThat(kommentar.getId()).isEqualTo(KommentarTestFactory.ID); + } - verify(mapper).mapObjectToString(KommentarTestFactory.TEXT); - } + @Test + void shouldMapTextToString() { + callMapper(); - @Test - void shouldMapText() { - var kommentar = callMapper(); + verify(mapper).mapObjectToString(KommentarTestFactory.TEXT); + } - assertThat(kommentar.getText()).isEqualTo(KommentarTestFactory.TEXT); - } + @Test + void shouldMapText() { + var kommentar = callMapper(); - @Test - void shouldMapCreatedByToString() { - callMapper(); + assertThat(kommentar.getText()).isEqualTo(KommentarTestFactory.TEXT); + } - verify(mapper).mapObjectToString(KommentarTestFactory.CREATED_BY); - } + @Test + void shouldMapCreatedByToString() { + callMapper(); - @Test - void shouldMapCreatedBy() { - var kommentar = callMapper(); + verify(mapper).mapObjectToString(KommentarTestFactory.CREATED_BY); + } - assertThat(kommentar.getCreatedBy()).isEqualTo(KommentarTestFactory.CREATED_BY); - } + @Test + void shouldMapCreatedBy() { + var kommentar = callMapper(); - @Test - void shouldMapCreatedAtToString() { - callMapper(); + assertThat(kommentar.getCreatedBy()).isEqualTo(KommentarTestFactory.CREATED_BY); + } - verify(mapper).mapObjectToString(KommentarTestFactory.CREATED_AT_STR); - } + @Test + void shouldMapCreatedAtToString() { + callMapper(); - @Test - void shouldCallTimeMapper() { - callMapper(); + verify(mapper).mapObjectToString(KommentarTestFactory.CREATED_AT_STR); + } - verify(timeMapper).parseString(KommentarTestFactory.CREATED_AT_STR); - } + @Test + void shouldCallTimeMapper() { + callMapper(); - @Test - void shouldMapCreatedAt() { - var kommentar = callMapper(); + verify(timeMapper).parseString(KommentarTestFactory.CREATED_AT_STR); + } - assertThat(kommentar.getCreatedAt()).isEqualTo(KommentarTestFactory.CREATED_AT); - } + @Test + void shouldMapCreatedAt() { + var kommentar = callMapper(); - @Test - void shouldCallAttachmentMapper() { - callMapper(); + assertThat(kommentar.getCreatedAt()).isEqualTo(KommentarTestFactory.CREATED_AT); + } - verify(attachmentMapper).mapAttachments(argThat(this::isCollectionOfAttachmentIds)); - } + @Test + void shouldCallAttachmentMapper() { + callMapper(); - @Test - void shouldMapAttachments() { - var kommentar = callMapper(); + verify(attachmentMapper).mapAttachments(argThat(this::isCollectionOfAttachmentIds)); + } - assertThat(kommentar.getAttachments()).containsExactlyElementsOf(KommentarTestFactory.ATTACHMENTS); - } + @Test + void shouldMapAttachments() { + var kommentar = callMapper(); - @SuppressWarnings("unchecked") - private boolean isCollectionOfAttachmentIds(Object obj) { - return obj instanceof Collection && ((Collection<String>) obj).containsAll(GrpcKommentarTestFactory.ATTACHMENTS); + assertThat(kommentar.getAttachments()).containsExactlyElementsOf(KommentarTestFactory.ATTACHMENTS); + } + + @SuppressWarnings("unchecked") + private boolean isCollectionOfAttachmentIds(Object obj) { + return obj instanceof Collection && ((Collection<String>) obj).containsAll(GrpcKommentarTestFactory.ATTACHMENTS); + } + + private Kommentar callMapper() { + return mapper.mapItemMapToKommentar(GrpcKommentarTestFactory.createItemAsMap()); + } } - private Kommentar callMapper() { - return mapper.mapItemMapToKommentar(GrpcKommentarTestFactory.createItemAsMap()); + @Nested + class OnAttachmentsMissing { + + @Test + void shouldSetToEmptyCollection() { + var kommentar = mapper.mapItemMapToKommentar(Map.of()); + + assertThat(kommentar.getAttachments()).isEmpty(); + } } }