diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/file/AttachmentFileMapper.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/file/AttachmentFileMapper.java index 8b39ba197630a28ed551c50798bb761e6893d2cd..e1f6f6e7ebd565f9b317664260c2da2be3a555f0 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/file/AttachmentFileMapper.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/file/AttachmentFileMapper.java @@ -24,11 +24,18 @@ package de.ozgcloud.nachrichten.file; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; -import de.ozgcloud.vorgang.grpc.file.GrpcOzgFile; +import de.ozgcloud.apilib.file.OzgCloudFile; +import de.ozgcloud.apilib.file.OzgCloudUploadFile; @Mapper interface AttachmentFileMapper { - AttachmentFile fromOzgFile(GrpcOzgFile ozgFile); + @Mapping(target = "vorgangId", ignore = true) + AttachmentFile fromOzgCloudFile(OzgCloudFile ozgCloudFile); + + @Mapping(target = "fileName", source = "name") + @Mapping(target = "fieldName", constant = AttachmentFileService.ATTACHMENT_NAME) + OzgCloudUploadFile toOzgCloudUploadFile(AttachmentFile attachmentFile); } diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/file/AttachmentFileMapperTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/file/AttachmentFileMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..68dd898d3e247acbbb0176ca1debf15eacf9ca4e --- /dev/null +++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/file/AttachmentFileMapperTest.java @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2024 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.nachrichten.file; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mapstruct.factory.Mappers; + +import de.ozgcloud.apilib.file.OzgCloudFile; +import de.ozgcloud.apilib.file.OzgCloudFileTestFactory; +import de.ozgcloud.apilib.file.OzgCloudUploadFile; +import de.ozgcloud.apilib.file.OzgCloudUploadFileTestFactory; + +class AttachmentFileMapperTest { + + private final AttachmentFileMapper mapper = Mappers.getMapper(AttachmentFileMapper.class); + + @Nested + class TestFromOzgCloudFile { + + private static final OzgCloudFile OZG_CLOUD_FILE = OzgCloudFileTestFactory.createBuilder() + .contentType(AttachmentFileTestFactory.CONTENT_TYPE) + .name(AttachmentFileTestFactory.NAME) + .build(); + + @Test + void shouldMapFromOzgCloudFile() { + + var result = mapper.fromOzgCloudFile(OZG_CLOUD_FILE); + + assertThat(result).usingRecursiveComparison().ignoringFields("vorgangId").isEqualTo(AttachmentFileTestFactory.create()); + } + } + + @Nested + class TestToOzgCloudUploadFile { + + private static final OzgCloudUploadFile OZG_CLOUD_UPLOAD_FILE = OzgCloudUploadFileTestFactory.createBuilder() + .fieldName(AttachmentFileService.ATTACHMENT_NAME) + .fileName(AttachmentFileTestFactory.NAME) + .contentType(AttachmentFileTestFactory.CONTENT_TYPE) + .vorgangId(AttachmentFileTestFactory.VORGANG_ID) + .build(); + + @Test + void shouldMapToOzgCloudUploadFile() { + var result = mapper.toOzgCloudUploadFile(AttachmentFileTestFactory.create()); + + assertThat(result).usingRecursiveComparison().isEqualTo(OZG_CLOUD_UPLOAD_FILE); + } + } +} \ No newline at end of file