diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangHeader.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangHeader.java index 7737b3d628f52d05c1d72714e184389e6b79410b..703f8724a55131091869f580179f94d427bca500 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangHeader.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangHeader.java @@ -32,6 +32,7 @@ import lombok.ToString; @Builder @Getter +@ToString public class OzgCloudVorgangHeader { private OzgCloudVorgangStatus status; diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangHeaderMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangHeaderMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..032f2fa59348a0ca8c053b7f12815d9066668414 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangHeaderMapper.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 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.apilib.vorgang.grpc; + +import org.mapstruct.Mapper; + +import de.ozgcloud.apilib.vorgang.OzgCloudUserIdMapper; +import de.ozgcloud.apilib.vorgang.OzgCloudVorgangHeader; +import de.ozgcloud.apilib.vorgang.OzgCloudVorgangStatusMapper; +import de.ozgcloud.vorgang.vorgang.GrpcVorgangHeader; + +@Mapper(uses = { OzgCloudVorgangStatusMapper.class, OzgCloudUserIdMapper.class }) +public interface OzgCloudVorgangHeaderMapper { + + OzgCloudVorgangHeader fromGrpc(GrpcVorgangHeader vorgang); +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangStubMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangStubMapper.java index e7e046b6f233eca40d8db27f717e1f272635cfab..dd3d7a1d9413297f8c89812d219ad3c0acce49b6 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangStubMapper.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangStubMapper.java @@ -30,12 +30,11 @@ import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper; import de.ozgcloud.apilib.vorgang.OzgCloudVorgangStub; import de.ozgcloud.vorgang.vorgang.GrpcVorgangHeader; -@Mapper(uses = OzgCloudVorgangIdMapper.class) +@Mapper(uses = { OzgCloudVorgangIdMapper.class, OzgCloudVorgangHeaderMapper.class }) public interface OzgCloudVorgangStubMapper { - @Mapping(target = "header", ignore = true) - @Mapping(target = "vorgangNummer", ignore = true) + @Mapping(target = "vorgangNummer", source = "nummer") @Mapping(target = "vorgangName", source = "name") + @Mapping(target = "header", source = ".") OzgCloudVorgangStub fromGrpc(GrpcVorgangHeader vorgang); - } diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangStubTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangStubTestFactory.java index a7fa49c9f7f49c2a580288eab1fb94c1c789e376..3790b25c8fc1cdfb0c129d22e360a8760132d219 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangStubTestFactory.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangStubTestFactory.java @@ -34,6 +34,7 @@ public class OzgCloudVorgangStubTestFactory { .id(OzgCloudVorgangTestFactory.ID) .version(OzgCloudVorgangTestFactory.VERSION) .vorgangName(OzgCloudVorgangTestFactory.VORGANG_NAME) + .vorgangNummer(OzgCloudVorgangTestFactory.VORGANG_NUMMER) .header(OzgCloudVorgangHeaderTestFactory.create()); } } diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangHeaderMapperTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangHeaderMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..23b97de888be029dddaac7601bac4ac28d50fe00 --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangHeaderMapperTest.java @@ -0,0 +1,32 @@ +package de.ozgcloud.apilib.vorgang.grpc; + +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.vorgang.OzgCloudVorgangHeader; +import de.ozgcloud.apilib.vorgang.OzgCloudVorgangHeaderTestFactory; + +class OzgCloudVorgangHeaderMapperTest { + + private final OzgCloudVorgangHeaderMapper mapper = Mappers.getMapper(OzgCloudVorgangHeaderMapper.class); + + @Nested + class TestFromGrpc { + + @Test + void shouldMap() { + var mapped = mapper.fromGrpc(GrpcVorgangHeaderTestFactory.create()); + + assertThat(mapped).usingRecursiveComparison().isEqualTo(vorgangHeaderWithoutServiceKonto()); + } + + private static OzgCloudVorgangHeader vorgangHeaderWithoutServiceKonto() { + return OzgCloudVorgangHeaderTestFactory.createBuilder() + .serviceKonto(null) + .build(); + } + } +} diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangStubMapperTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangStubMapperTest.java index 699dac3370f1f2c72a27a422eee9609f8dca4f16..59fee9ba77e61e8ad6882263f1b0529de32ca811 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangStubMapperTest.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangStubMapperTest.java @@ -25,24 +25,34 @@ package de.ozgcloud.apilib.vorgang.grpc; 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.vorgang.OzgCloudVorgangHeaderTestFactory; +import de.ozgcloud.apilib.vorgang.OzgCloudVorgangStub; import de.ozgcloud.apilib.vorgang.OzgCloudVorgangStubTestFactory; class OzgCloudVorgangStubMapperTest { - private OzgCloudVorgangStubMapper mapper = Mappers.getMapper(OzgCloudVorgangStubMapper.class); + private final OzgCloudVorgangStubMapper mapper = Mappers.getMapper(OzgCloudVorgangStubMapper.class); - @Test - void shouldMapStubFields() { - var expected = OzgCloudVorgangStubTestFactory.createBuilder() - .header(null) - .vorgangNummer(null) - .build(); + @Nested + class TestFromGrpc { - var mapped = mapper.fromGrpc(GrpcVorgangHeaderTestFactory.create()); + @Test + void shouldMap() { + var mapped = mapper.fromGrpc(GrpcVorgangHeaderTestFactory.create()); - assertThat(mapped).usingRecursiveComparison().isEqualTo(expected); + assertThat(mapped).usingRecursiveComparison().isEqualTo(vorgangStubWithoutServiceKonto()); + } + + private static OzgCloudVorgangStub vorgangStubWithoutServiceKonto() { + return OzgCloudVorgangStubTestFactory.createBuilder() + .header(OzgCloudVorgangHeaderTestFactory.createBuilder() + .serviceKonto(null) + .build()) + .build(); + } } }