diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidMapper.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidMapper.java index 989235cdeefc12aa88f7ca0c66eecb165af5ed59..e24e7101b1606ee6bb86cc90a294744a69661b0b 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidMapper.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidMapper.java @@ -42,8 +42,12 @@ import de.ozgcloud.document.bescheid.GrpcSentInfo; UserIdMapper.class }) interface BescheidMapper { + @Mapping(target = "vorgangId", ignore = true) @Mapping(target = "attachments", source = "grpcBescheid.attachmentsList") - Bescheid fromGrpc(GrpcBescheid grpcBescheid, String vorgangId); + Bescheid fromGrpc(GrpcBescheid grpcBescheid); + + @Mapping(target = "attachments", source = "grpcBescheid.attachmentsList") + Bescheid fromGrpcAndVorgangId(GrpcBescheid grpcBescheid, String vorgangId); List<FileId> fromProtocolStringList(ProtocolStringList value); diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java index 16485a34c36cb51ba6112f8374d47ddf7717e9aa..5890398e4c8f312ef8b2a092477ba147963570fa 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java @@ -36,6 +36,7 @@ import de.ozgcloud.document.bescheid.GrpcBescheidManagerConfigRequest; import de.ozgcloud.document.bescheid.GrpcGetAllBescheidRequest; import de.ozgcloud.document.bescheid.GrpcGetBescheidDraftRequest; import de.ozgcloud.document.bescheid.GrpcGetBescheidDraftResponse; +import de.ozgcloud.document.bescheid.GrpcGetBescheidRequest; import net.devh.boot.grpc.client.inject.GrpcClient; @Service @@ -49,25 +50,33 @@ class BescheidRemoteService { public Optional<Bescheid> getBescheidDraft(String vorgangId) { var request = buildGetBescheidDraftRequest(vorgangId); var response = bescheidServiceStub.getBescheidDraft(request); - return getBescheidFromResponse(response).map(bescheid -> bescheidMapper.fromGrpc(bescheid, vorgangId)); + return getBescheidFromResponse(response).map(bescheid -> bescheidMapper.fromGrpcAndVorgangId(bescheid, vorgangId)); } GrpcGetBescheidDraftRequest buildGetBescheidDraftRequest(String vorgangId) { - return GrpcGetBescheidDraftRequest.newBuilder() - .setVorgangId(vorgangId) - .build(); + return GrpcGetBescheidDraftRequest.newBuilder().setVorgangId(vorgangId).build(); } Optional<GrpcBescheid> getBescheidFromResponse(GrpcGetBescheidDraftResponse response) { return response.hasBescheid() ? Optional.of(response.getBescheid()) : Optional.empty(); } + public Bescheid getBescheid(String bescheidId) { + var request = buildGetBescheidRequest(bescheidId); + var response = bescheidServiceStub.getBescheid(request); + return bescheidMapper.fromGrpc(response.getBescheid()); + } + + GrpcGetBescheidRequest buildGetBescheidRequest(String bescheidId) { + return GrpcGetBescheidRequest.newBuilder().setId(bescheidId).build(); + } + public Stream<Bescheid> findByVorgangId(String vorgangId) { var request = buildGetAllBescheidRequest(vorgangId); var response = bescheidServiceStub.getAll(request); - return response.getBescheidList().stream().map(grpcBescheid -> bescheidMapper.fromGrpc(grpcBescheid, vorgangId)); + return response.getBescheidList().stream().map(grpcBescheid -> bescheidMapper.fromGrpcAndVorgangId(grpcBescheid, vorgangId)); } GrpcGetAllBescheidRequest buildGetAllBescheidRequest(String vorgangId) { diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidService.java index d08895f986fe673b8de45be743078b4b4b99e19d..8ebaf02e9e285f73ebc5fb881d03dd701753b728 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidService.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidService.java @@ -42,6 +42,10 @@ public class BescheidService { return remoteService.getBescheidDraft(vorgangId); } + public Bescheid getBescheid(String bescheidId) { + return remoteService.getBescheid(bescheidId); + } + public Stream<Bescheid> findByVorgangId(String vorgangId) { return remoteService.findByVorgangId(vorgangId); } diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidMapperTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidMapperTest.java index 2b93192a54784deb5eb7ea1a98f68f0933cb7924..8ddaddbedd9a0678fc2ec08a01fbbc58426697f1 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidMapperTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidMapperTest.java @@ -27,8 +27,8 @@ import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import java.time.ZonedDateTime; - +import org.assertj.core.api.recursive.comparison.*; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mapstruct.factory.Mappers; @@ -36,7 +36,6 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import de.ozgcloud.alfa.common.binaryfile.FileIdMapper; -import de.ozgcloud.alfa.common.user.UserId; import de.ozgcloud.alfa.common.user.UserIdMapper; import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory; @@ -49,100 +48,60 @@ class BescheidMapperTest { @InjectMocks private final BescheidMapper mapper = Mappers.getMapper(BescheidMapper.class); + @BeforeEach + void init() { + when(fileIdMapper.toFileId(any())).thenReturn(BescheidTestFactory.ATTACHMENT_ID); + when(userIdMapper.fromString(any())).thenReturn(BescheidTestFactory.SENT_INFO.getSentBy()); + } + @Nested class TestFromGrpc { @Test - void shouldMapId() { - var bescheid = map(); - - assertThat(bescheid.getId()).isEqualTo(GrpcBescheidTestFactory.ID); - } - - @Test - void shouldMapVorgangId() { - var bescheid = map(); + void shouldMapAttachments() { + mapper.fromGrpc(GrpcBescheidTestFactory.create()); - assertThat(bescheid.getVorgangId()).isEqualTo(VorgangHeaderTestFactory.ID); + verify(fileIdMapper).toFileId(GrpcBescheidTestFactory.ATTACHMENT_ID); } @Test - void shouldMapBewilligt() { - var bescheid = map(); + void shouldMapSentBy() { + mapper.fromGrpc(GrpcBescheidTestFactory.create()); - assertThat(bescheid.getBewilligt()).isEqualTo(GrpcBescheidTestFactory.BEWILLIGT); + verify(userIdMapper).fromString(GrpcSentInfoTestFactory.SENT_BY); } @Test - void shouldMapBeschiedenAm() { - var bescheid = map(); + void shouldMapAllFields() { + var bescheid = mapper.fromGrpc(GrpcBescheidTestFactory.create()); - assertThat(bescheid.getBeschiedenAm()).isEqualTo(GrpcBescheidTestFactory.BESCHIEDEN_AM); + assertThat(bescheid).usingRecursiveComparison(RecursiveComparisonConfiguration.builder().withIgnoredFields("vorgangId").build()) + .isEqualTo(BescheidTestFactory.create()); } + } - @Test - void shouldMapBescheidDocument() { - var bescheid = map(); - - assertThat(bescheid.getBescheidDocument()).isEqualTo(GrpcBescheidTestFactory.BESCHEID_DOCUMENT); - } + @Nested + class TestFromGrpcAndVorgangId { @Test void shouldMapAttachments() { - when(fileIdMapper.toFileId(any())).thenCallRealMethod(); - - var bescheid = map(); + mapper.fromGrpc(GrpcBescheidTestFactory.create()); - assertThat(bescheid.getAttachments()).containsExactlyInAnyOrderElementsOf(BescheidTestFactory.ATTACHMENTS); + verify(fileIdMapper).toFileId(GrpcBescheidTestFactory.ATTACHMENT_ID); } @Test - void shouldMapNachrichtText() { - var bescheid = map(); + void shouldMapSentBy() { + mapper.fromGrpc(GrpcBescheidTestFactory.create()); - assertThat(bescheid.getNachrichtText()).isEqualTo(GrpcBescheidTestFactory.NACHRICHT_TEXT); + verify(userIdMapper).fromString(GrpcSentInfoTestFactory.SENT_BY); } @Test - void shouldMapNachrichtSubject() { - var bescheid = map(); - - assertThat(bescheid.getNachrichtSubject()).isEqualTo(GrpcBescheidTestFactory.NACHRICHT_SUBJECT); - } - - @Test - void shouldMapStatus() { - var bescheid = map(); - - assertThat(bescheid.getStatus()).isEqualTo(BescheidTestFactory.STATUS); - } - - @Nested - class TestMapSentInfo { - private final SentInfo expectedSentInfo = SentInfoTestFactory.createBuilder() - .sentAt(ZonedDateTime.parse(GrpcSentInfoTestFactory.SENT_AT)) - .sentBy(UserId.from(GrpcSentInfoTestFactory.SENT_BY)) - .build(); - - @Test - void shouldMapSentBy() { - when(userIdMapper.fromString(GrpcSentInfoTestFactory.SENT_BY)).thenCallRealMethod(); - - var bescheid = map(); - - assertThat(bescheid.getSentInfo().getSentBy()).isEqualTo(expectedSentInfo.getSentBy()); - } - - @Test - void shouldMapSentAt() { - var bescheid = map(); - - assertThat(bescheid.getSentInfo().getSentAt()).isEqualTo(expectedSentInfo.getSentAt()); - } - } + void shouldMapAllFields() { + var bescheid = mapper.fromGrpcAndVorgangId(GrpcBescheidTestFactory.create(), VorgangHeaderTestFactory.ID); - private Bescheid map() { - return mapper.fromGrpc(GrpcBescheidTestFactory.create(), VorgangHeaderTestFactory.ID); + assertThat(bescheid).usingRecursiveComparison().isEqualTo(BescheidTestFactory.create()); } } } diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java index ea402f0834a087f94d0aad579cbcbdc3e6dd690e..84d5208e2ca34eb32e6edbc42a196496152bbd5b 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java @@ -45,6 +45,8 @@ import de.ozgcloud.document.bescheid.GrpcGetAllBescheidRequest; import de.ozgcloud.document.bescheid.GrpcGetAllBescheidResponse; import de.ozgcloud.document.bescheid.GrpcGetBescheidDraftRequest; import de.ozgcloud.document.bescheid.GrpcGetBescheidDraftResponse; +import de.ozgcloud.document.bescheid.GrpcGetBescheidRequest; +import de.ozgcloud.document.bescheid.GrpcGetBescheidResponse; class BescheidRemoteServiceTest { @@ -83,18 +85,25 @@ class BescheidRemoteServiceTest { verify(bescheidServiceStub).getBescheidDraft(request); } + @Test + void shouldGetBescheidFromResponse() { + service.getBescheidDraft(VorgangHeaderTestFactory.ID); + + verify(service).getBescheidFromResponse(response); + } + @Test void shouldCallMapper() { doReturn(Optional.of(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID)).when(service).getBescheidFromResponse(response); service.getBescheidDraft(VorgangHeaderTestFactory.ID); - verify(bescheidMapper).fromGrpc(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID); + verify(bescheidMapper).fromGrpcAndVorgangId(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID); } @Test void shouldReturnBescheid() { - when(bescheidMapper.fromGrpc(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID)).thenReturn( + when(bescheidMapper.fromGrpcAndVorgangId(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID)).thenReturn( bescheidDraft); var bescheidDraft = service.getBescheidDraft(VorgangHeaderTestFactory.ID); @@ -110,13 +119,6 @@ class BescheidRemoteServiceTest { assertThat(bescheidDraft).isEmpty(); } - - @Test - void shouldGetBescheidFromResponse() { - service.getBescheidDraft(VorgangHeaderTestFactory.ID); - - verify(service).getBescheidFromResponse(response); - } } @Nested @@ -148,6 +150,61 @@ class BescheidRemoteServiceTest { } } + @Nested + class TestGetBescheid { + + private final GrpcGetBescheidRequest request = GrpcGetBescheidRequestTestFactory.create(); + private final GrpcGetBescheidResponse response = GrpcGetBescheidResponseTestFactory.create(); + + @BeforeEach + void setUp() { + doReturn(request).when(service).buildGetBescheidRequest(any()); + when(bescheidServiceStub.getBescheid(any())).thenReturn(response); + } + + @Test + void shouldBuildGetBescheidRequest() { + service.getBescheid(BescheidTestFactory.ID); + + verify(service).buildGetBescheidRequest(BescheidTestFactory.ID); + } + + @Test + void shouldCallGrpcService() { + service.getBescheid(BescheidTestFactory.ID); + + verify(bescheidServiceStub).getBescheid(request); + } + + @Test + void shouldCallMapper() { + service.getBescheid(BescheidTestFactory.ID); + + verify(bescheidMapper).fromGrpc(GrpcGetBescheidResponseTestFactory.GRPC_BESCHEID); + } + + @Test + void shouldReturnBescheid() { + var mappedBescheid = BescheidTestFactory.create(); + when(bescheidMapper.fromGrpc(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID)).thenReturn(mappedBescheid); + + var bescheid = service.getBescheid(BescheidTestFactory.ID); + + assertThat(bescheid).isEqualTo(mappedBescheid); + } + } + + @Nested + class TestBuildGetBescheidRequest { + + @Test + void shouldHaveId() { + var request = service.buildGetBescheidRequest(BescheidTestFactory.ID); + + assertThat(request.getId()).isEqualTo(BescheidTestFactory.ID); + } + } + @Nested class TestCanCreateBescheidDocument { @@ -231,12 +288,12 @@ class BescheidRemoteServiceTest { void shouldMapBescheid() { service.findByVorgangId(VorgangHeaderTestFactory.ID).toList(); - verify(bescheidMapper).fromGrpc(GrpcGetAllBescheidResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID); + verify(bescheidMapper).fromGrpcAndVorgangId(GrpcGetAllBescheidResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID); } @Test void shouldReturnStreamOfBescheide() { - when(bescheidMapper.fromGrpc(any(), any())).thenReturn(bescheid); + when(bescheidMapper.fromGrpcAndVorgangId(any(), any())).thenReturn(bescheid); var bescheide = service.findByVorgangId(VorgangHeaderTestFactory.ID); diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidServiceTest.java index 07cb7f98e4ef1018673fb7fbb847c2082870bb28..16e9efb603bc76a00195db4e95abc49334472c53 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidServiceTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidServiceTest.java @@ -74,6 +74,27 @@ class BescheidServiceTest { } } + @Nested + class TestGetBescheid { + + @Test + void shouldCallRemoteService() { + service.getBescheid(BescheidTestFactory.ID); + + verify(remoteService).getBescheid(BescheidTestFactory.ID); + } + + @Test + void shouldReturnResultFromRemoteService() { + var remoteServiceResult = BescheidTestFactory.create(); + when(remoteService.getBescheid(BescheidTestFactory.ID)).thenReturn(remoteServiceResult); + + var result = service.getBescheid(BescheidTestFactory.ID); + + assertThat(result).isEqualTo(remoteServiceResult); + } + } + @Nested class TestFindByVorgangId { private final Stream<Bescheid> bescheidsUnsorted = Stream.of(BescheidTestFactory.create()); diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidTestFactory.java index 2f84362023d62e5ee86f533280ec3b81abe689eb..c71d8b97b9dc54bca7afa98928a53fd16e0374f1 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidTestFactory.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidTestFactory.java @@ -42,7 +42,9 @@ public class BescheidTestFactory { public static final String BESCHIEDEN_AM = "2024-05-27"; public static final boolean BEWILLIGT = true; public static final String BESCHEID_DOCUMENT = UUID.randomUUID().toString(); - public static final List<FileId> ATTACHMENTS = List.of(FileId.from(UUID.randomUUID().toString()), FileId.from(UUID.randomUUID().toString())); + public static final String ATTACHMENT_ID_VALUE = UUID.randomUUID().toString(); + public static final FileId ATTACHMENT_ID = FileId.from(ATTACHMENT_ID_VALUE); + public static final List<FileId> ATTACHMENTS = List.of(ATTACHMENT_ID); public static final String NACHRICHT_TEXT = LoremIpsum.getInstance().getWords(10); public static final String NACHRICHT_SUBJECT = LoremIpsum.getInstance().getWords(3); public static final SendBy SEND_BY = SendBy.MANUAL; diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidTestFactory.java index 9191a3995746f0e3071686cceefbdb17856c6c8b..c902cf1899e195310837819ca0a4eacaf8db3034 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidTestFactory.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidTestFactory.java @@ -25,19 +25,22 @@ package de.ozgcloud.alfa.bescheid; import java.util.List; -import de.ozgcloud.common.datatype.StringBasedValue; import de.ozgcloud.document.bescheid.GrpcBescheid; import de.ozgcloud.document.bescheid.GrpcSentInfo; public class GrpcBescheidTestFactory { public static final String ID = BescheidTestFactory.ID; + public static final String STATUS = BescheidTestFactory.STATUS.toString(); + public static final long VERSION = BescheidTestFactory.VERSION; public static final boolean BEWILLIGT = BescheidTestFactory.BEWILLIGT; public static final String BESCHIEDEN_AM = BescheidTestFactory.BESCHIEDEN_AM; public static final String BESCHEID_DOCUMENT = BescheidTestFactory.BESCHEID_DOCUMENT; - public static final List<String> ATTACHMENTS = BescheidTestFactory.ATTACHMENTS.stream().map(StringBasedValue::toString).toList(); + public static final String ATTACHMENT_ID = BescheidTestFactory.ATTACHMENT_ID_VALUE; + public static final List<String> ATTACHMENTS = List.of(ATTACHMENT_ID); public static final String NACHRICHT_TEXT = BescheidTestFactory.NACHRICHT_TEXT; public static final String NACHRICHT_SUBJECT = BescheidTestFactory.NACHRICHT_SUBJECT; + public static final String SEND_BY = BescheidTestFactory.SEND_BY.toString(); public static final GrpcSentInfo SENT_INFO = GrpcSentInfoTestFactory.create(); public static GrpcBescheid create() { @@ -47,14 +50,15 @@ public class GrpcBescheidTestFactory { public static GrpcBescheid.Builder createBuilder() { return GrpcBescheid.newBuilder() .setId(ID) - .setStatus(BescheidTestFactory.STATUS.toString()) + .setStatus(STATUS) + .setVersion(VERSION) .setBewilligt(BEWILLIGT) .setBeschiedenAm(BESCHIEDEN_AM) .setBescheidDocument(BESCHEID_DOCUMENT) .addAllAttachments(ATTACHMENTS) .setNachrichtText(NACHRICHT_TEXT) .setNachrichtSubject(NACHRICHT_SUBJECT) - .setSendBy(BescheidTestFactory.SEND_BY.toString()) + .setSendBy(SEND_BY) .setSentInfo(SENT_INFO); } } diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcGetBescheidRequestTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcGetBescheidRequestTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..2a8a54dba2fcd4a922094d975d6c7f0e2c960e26 --- /dev/null +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcGetBescheidRequestTestFactory.java @@ -0,0 +1,37 @@ +/* + * 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.alfa.bescheid; + +import de.ozgcloud.document.bescheid.GrpcGetBescheidRequest; + +class GrpcGetBescheidRequestTestFactory { + + public static GrpcGetBescheidRequest create() { + return createBuilder().build(); + } + + public static GrpcGetBescheidRequest.Builder createBuilder() { + return GrpcGetBescheidRequest.newBuilder().setId(BescheidTestFactory.ID); + } +} diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcGetBescheidResponseTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcGetBescheidResponseTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..9063b616dfe60ce73a8c7d7e5a9a45d5fb65eb56 --- /dev/null +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcGetBescheidResponseTestFactory.java @@ -0,0 +1,40 @@ +/* + * 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.alfa.bescheid; + +import de.ozgcloud.document.bescheid.GrpcBescheid; +import de.ozgcloud.document.bescheid.GrpcGetBescheidResponse; + +class GrpcGetBescheidResponseTestFactory { + + public static final GrpcBescheid GRPC_BESCHEID = GrpcBescheidTestFactory.create(); + + public static GrpcGetBescheidResponse create() { + return createBuilder().build(); + } + + public static GrpcGetBescheidResponse.Builder createBuilder() { + return GrpcGetBescheidResponse.newBuilder().setBescheid(GRPC_BESCHEID); + } +} diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcSentInfoTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcSentInfoTestFactory.java index c3a8f6d4432efe8e65549b0fac23ed6c8c5b54b9..32342f5e1348f4a5a6f80e920462ceb7f6a8f6fa 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcSentInfoTestFactory.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcSentInfoTestFactory.java @@ -23,15 +23,12 @@ */ package de.ozgcloud.alfa.bescheid; -import java.time.ZonedDateTime; - -import de.ozgcloud.alfa.common.user.GrpcUserTestFactory; import de.ozgcloud.document.bescheid.GrpcSentInfo; public class GrpcSentInfoTestFactory { - public static final String SENT_AT = ZonedDateTime.now().toString(); - public static final String SENT_BY = GrpcUserTestFactory.ID; + public static final String SENT_AT = SentInfoTestFactory.SENT_AT.toString(); + public static final String SENT_BY = SentInfoTestFactory.SENT_BY.toString(); public static GrpcSentInfo create() { return createBuilder().build(); diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/binaryfile/FileIdMapperTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/binaryfile/FileIdMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..3262b3032fc0c9534694d01ddd2a7d217e35921b --- /dev/null +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/binaryfile/FileIdMapperTest.java @@ -0,0 +1,60 @@ +/* + * 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.alfa.common.binaryfile; + +import static org.assertj.core.api.Assertions.*; + +import java.util.UUID; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mapstruct.factory.Mappers; + +class FileIdMapperTest { + + private final FileIdMapper mapper = Mappers.getMapper(FileIdMapper.class); + private final String fileIdValue = UUID.randomUUID().toString(); + + @Nested + class TestToFileId { + + @Test + void shouldReturnFileId() { + var fileId = mapper.toFileId(fileIdValue); + + assertThat(fileId).isEqualTo(FileId.from(fileIdValue)); + } + } + + @Nested + class TestToString { + + @Test + void shouldReturnFileIdValue() { + var fileIdString = mapper.toString(FileId.from(fileIdValue)); + + assertThat(fileIdString).isEqualTo(fileIdValue); + } + } +} diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/user/UserIdMapperTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/user/UserIdMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..7f7755c40e11b273295101ba4f2fa6027fd8f9cb --- /dev/null +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/user/UserIdMapperTest.java @@ -0,0 +1,79 @@ +/* + * 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.alfa.common.user; + +import static org.assertj.core.api.Assertions.*; + +import java.util.UUID; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.NullAndEmptySource; +import org.junit.jupiter.params.provider.ValueSource; +import org.mapstruct.factory.Mappers; + +class UserIdMapperTest { + + private final UserIdMapper mapper = Mappers.getMapper(UserIdMapper.class); + private final String userIdValue = UUID.randomUUID().toString(); + + @Nested + class TestFromString { + + @ParameterizedTest + @NullAndEmptySource + @ValueSource(strings = {" "}) + void shouldReturnNull(String str) { + var userId = mapper.fromString(str); + + assertThat(userId).isNull(); + } + + @Test + void shouldReturnUserId() { + var userId = mapper.fromString(userIdValue); + + assertThat(userId).isEqualTo(UserId.from(userIdValue)); + } + + @Test + void shouldTrimUserIdString() { + var userId = mapper.fromString(" " + userIdValue + " "); + + assertThat(userId).isEqualTo(UserId.from(userIdValue)); + } + } + + @Nested + class TestToString { + + @Test + void shouldReturnUserIdValue() { + var userIdString = mapper.toString(UserId.from(userIdValue)); + + assertThat(userIdString).isEqualTo(userIdValue); + } + } +}