diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/common/command/grpc/OzgCloudCommandMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/common/command/grpc/OzgCloudCommandMapper.java index c33ed1a91d16940f522e7113d25e1a8bd74679c8..e041d593ab39fbf8f7000c23fcec0ec790434633 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/common/command/grpc/OzgCloudCommandMapper.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/common/command/grpc/OzgCloudCommandMapper.java @@ -15,6 +15,11 @@ import de.ozgcloud.vorgang.grpc.command.GrpcCreateCommandRequest; @Mapper(uses = GrpcObjectMapper.class) public interface OzgCloudCommandMapper { + @Mapping(target = "redirectRequestOrBuilder", ignore = true) + @Mapping(target = "orderStringBytes", ignore = true) + @Mapping(target = "defaultInstanceForType", ignore = true) + @Mapping(target = "callContextOrBuilder", ignore = true) + @Mapping(target = "bodyObjOrBuilder", ignore = true) @Mapping(target = "mergeFrom", ignore = true) @Mapping(target = "clearField", ignore = true) @Mapping(target = "clearOneof", ignore = true) @@ -24,7 +29,6 @@ public interface OzgCloudCommandMapper { @Mapping(target = "mergeUnknownFields", ignore = true) @Mapping(target = "removeBody", ignore = true) @Mapping(target = "callContext", ignore = true) - @Mapping(target = "redirectRequest", ignore = true) @Mapping(target = "relationIdBytes", ignore = true) @Mapping(target = "unknownFields", ignore = true) diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/file/grpc/OzgCloudFileMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/file/grpc/OzgCloudFileMapper.java index f07e2d2349c972700157e47d43b70559c6e7d9de..f2a61f8b63fb6d28aafd3c0ac3f7cc71e1f06372 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/file/grpc/OzgCloudFileMapper.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/file/grpc/OzgCloudFileMapper.java @@ -1,15 +1,22 @@ package de.ozgcloud.apilib.file.grpc; import org.mapstruct.Mapper; +import org.mapstruct.NullValueCheckStrategy; +import org.mapstruct.ReportingPolicy; import de.ozgcloud.apilib.file.OzgCloudFile; -import de.ozgcloud.apilib.file.OzgCloudFileId; +import de.ozgcloud.apilib.vorgang.OzgCloudFileIdMapper; import de.ozgcloud.vorgang.grpc.file.GrpcOzgFile; +import de.ozgcloud.vorgang.vorgang.GrpcIncomingFile; -@Mapper +@Mapper(uses = { OzgCloudFileIdMapper.class }, + unmappedTargetPolicy = ReportingPolicy.WARN, + nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS +) public interface OzgCloudFileMapper { OzgCloudFile fromGrpc(GrpcOzgFile grpcFile); - OzgCloudFileId toOzgCloudFileId(String id); + OzgCloudFile fromIncomingFile(GrpcIncomingFile grpcFile); + } diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudAntragsteller.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudAntragsteller.java index bd3fbb49799a0a98829077274307a9f8ea05bc3c..0cd01f84422b08576d3cd222307532be6039d289 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudAntragsteller.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudAntragsteller.java @@ -1,5 +1,7 @@ package de.ozgcloud.apilib.vorgang; +import java.util.List; + import lombok.Builder; import lombok.Getter; @@ -20,7 +22,7 @@ public class OzgCloudAntragsteller { private String geburtsort; /** Name of birth */ private String geburtsname; - + private String firmaName; /** Street */ private String strasse; /** House Number */ @@ -34,4 +36,5 @@ public class OzgCloudAntragsteller { /** Telephone number */ private String telefon; + private List<OzgCloudFormDataEntry> otherData; } diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudFileIdMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudFileIdMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..5d9b14c296d58273e6f73679c60ff5ed040d64ef --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudFileIdMapper.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.apilib.vorgang; + +import java.util.Optional; + +import org.apache.commons.lang3.StringUtils; +import org.mapstruct.Mapper; + +import de.ozgcloud.apilib.file.OzgCloudFileId; + +@Mapper +public interface OzgCloudFileIdMapper { + + default OzgCloudFileId toFileId(String fileId) { + return Optional.ofNullable(fileId).map(StringUtils::trimToNull).map(OzgCloudFileId::from).orElse(null); + } +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddress.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddress.java index caf386b63ef83c01c5aac3e80d66075809fc5bf0..65bd91a3690789676e19d90d6487b7d9ac4de992 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddress.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddress.java @@ -4,12 +4,14 @@ import java.util.Collection; import lombok.Builder; import lombok.Getter; +import lombok.Singular; @Getter @Builder public class OzgCloudPostfachAddress { private String version; - - private Collection<OzgCloudPostfachAddressIdentifier> identifier; + private int type; + @Singular + private Collection<OzgCloudPostfachAddressIdentifier> identifiers; } diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKonto.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKonto.java index 6dff9e12ddeb005dd2ecf629748bff96308523f0..d83638ae44c40e2d85fd9e4a4b6ed91124db7832 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKonto.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKonto.java @@ -10,4 +10,6 @@ public class OzgCloudServiceKonto { private OzgCloudServiceKontoType type; private OzgCloudPostfachAddress address; + + private OzgCloudTrustLevel trustLevel; } diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKontoType.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKontoType.java index f6ba3c4deb3a70240a269e96139ad96bdbf5cc8c..e16a31bce52e5a9f6b9678051eae7f85600cac38 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKontoType.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKontoType.java @@ -1,5 +1,7 @@ package de.ozgcloud.apilib.vorgang; +import org.mapstruct.ObjectFactory; + import de.ozgcloud.common.datatype.StringBasedValue; public class OzgCloudServiceKontoType extends StringBasedValue { @@ -8,6 +10,7 @@ public class OzgCloudServiceKontoType extends StringBasedValue { super(type); } + @ObjectFactory public static OzgCloudServiceKontoType from(String type) { return new OzgCloudServiceKontoType(type); } diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudTrustLevel.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudTrustLevel.java new file mode 100644 index 0000000000000000000000000000000000000000..dd0c1a4f477b4449646f4aed4bb60e4b3df26ff9 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudTrustLevel.java @@ -0,0 +1,41 @@ +/* + * 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.apilib.vorgang; + +import org.mapstruct.ObjectFactory; + +import de.ozgcloud.common.datatype.StringBasedValue; + +public class OzgCloudTrustLevel extends StringBasedValue { + + OzgCloudTrustLevel(String trustLevel) { + super(trustLevel); + } + + @ObjectFactory + public static OzgCloudTrustLevel from(String trustLevel) { + return new OzgCloudTrustLevel(trustLevel); + } +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudUserIdMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudUserIdMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..3b89ecee3ae677f3705a120dbb815d354e86aade --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudUserIdMapper.java @@ -0,0 +1,41 @@ +/* + * 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.apilib.vorgang; + +import java.util.Optional; + +import org.apache.commons.lang3.StringUtils; +import org.mapstruct.Mapper; + +import de.ozgcloud.apilib.user.OzgCloudUserId; + +@Mapper +public interface OzgCloudUserIdMapper { + + default OzgCloudUserId toUserId(String userId) { + return Optional.ofNullable(userId).map(StringUtils::trimToNull).map(OzgCloudUserId::from).orElse(null); + } + +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangStatusMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangStatusMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..8f07b1d57e1d46a1af3bb9eb37ed4400b672926f --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangStatusMapper.java @@ -0,0 +1,39 @@ +/* + * 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.apilib.vorgang; + +import java.util.Optional; + +import org.apache.commons.lang3.StringUtils; +import org.mapstruct.Mapper; + +@Mapper +public interface OzgCloudVorgangStatusMapper { + + default OzgCloudVorgangStatus toVorgangStatus(String status) { + return Optional.ofNullable(status).map(StringUtils::trimToNull).map(OzgCloudVorgangStatus::from).orElse(null); + } + +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudEingangMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudEingangMapper.java index fb45e1936bee0271ebe3e2cf849a187219b4c6df..6a819018ee2728c92bce1f6b76eb95777b25fa2b 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudEingangMapper.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudEingangMapper.java @@ -3,9 +3,13 @@ package de.ozgcloud.apilib.vorgang.grpc; import java.util.List; import java.util.stream.Stream; +import org.mapstruct.CollectionMappingStrategy; import org.mapstruct.Mapper; import org.mapstruct.Mapping; +import org.mapstruct.NullValueCheckStrategy; +import org.mapstruct.ReportingPolicy; +import de.ozgcloud.apilib.file.grpc.OzgCloudFileMapper; import de.ozgcloud.apilib.vorgang.OzgCloudEingang; import de.ozgcloud.apilib.vorgang.OzgCloudFormDataEntry; import de.ozgcloud.apilib.vorgang.OzgCloudFormField; @@ -15,14 +19,19 @@ import de.ozgcloud.vorgang.vorgang.GrpcFormData; import de.ozgcloud.vorgang.vorgang.GrpcFormField; import de.ozgcloud.vorgang.vorgang.GrpcSubForm; -@Mapper +@Mapper(uses = { OzgCloudFileGroupMapper.class, OzgCloudFileMapper.class }, + collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED, + unmappedTargetPolicy = ReportingPolicy.WARN, + nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS +) public interface OzgCloudEingangMapper { - // TODO map files - @Mapping(target = "attachments", ignore = true) - @Mapping(target = "representations", ignore = true) + @Mapping(target = "representation", ignore = true) + @Mapping(target = "attachment", ignore = true) @Mapping(target = "formDataEntrys", source = "formData") @Mapping(target = "zustaendigeStelle.organisationsEinheitId", source = "zustaendigeStelle.organisationseinheitenId") + @Mapping(target = "attachments", source = "attachmentsList") + @Mapping(target = "representations", source = "representationsList") OzgCloudEingang fromGrpc(GrpcEingang eingang); default List<OzgCloudFormDataEntry> mapFormData(GrpcFormData value) { @@ -45,4 +54,5 @@ public interface OzgCloudEingangMapper { return Stream.concat(fields, subForms).toList(); } + } diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudFileGroupMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudFileGroupMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..b6283296cc94dc34b343f43152de50cdb7fc1bca --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudFileGroupMapper.java @@ -0,0 +1,48 @@ +/* + * 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.apilib.vorgang.grpc; + +import org.mapstruct.CollectionMappingStrategy; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.NullValueCheckStrategy; +import org.mapstruct.ReportingPolicy; + +import de.ozgcloud.apilib.file.OzgCloudFileGroup; +import de.ozgcloud.apilib.file.grpc.OzgCloudFileMapper; +import de.ozgcloud.vorgang.vorgang.GrpcIncomingFileGroup; + +@Mapper(uses = { OzgCloudFileMapper.class }, + collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED, + unmappedTargetPolicy = ReportingPolicy.WARN, + nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS +) +public interface OzgCloudFileGroupMapper { + + @Mapping(target = "file", ignore = true) + @Mapping(target = "files", source = "filesList") + OzgCloudFileGroup fromIncomingFileGroup(GrpcIncomingFileGroup fileGroup); + +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudServiceKontoMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudServiceKontoMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..95c3906b7f7d2fc7a0b63f732060d315a44b8782 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudServiceKontoMapper.java @@ -0,0 +1,95 @@ +/* + * 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.apilib.vorgang.grpc; + +import java.util.List; +import java.util.Optional; + +import org.apache.commons.lang3.StringUtils; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.NullValueCheckStrategy; +import org.mapstruct.NullValuePropertyMappingStrategy; + +import de.ozgcloud.apilib.vorgang.OzgCloudPostfachAddress; +import de.ozgcloud.apilib.vorgang.OzgCloudPostfachAddressIdentifier; +import de.ozgcloud.apilib.vorgang.OzgCloudServiceKonto; +import de.ozgcloud.apilib.vorgang.OzgCloudServiceKontoType; +import de.ozgcloud.apilib.vorgang.OzgCloudTrustLevel; +import de.ozgcloud.vorgang.common.GrpcObject; +import de.ozgcloud.vorgang.common.GrpcProperty; +import de.ozgcloud.vorgang.vorgang.GrpcPostfachAddress; +import de.ozgcloud.vorgang.vorgang.GrpcServiceKonto; +import de.ozgcloud.vorgang.vorgang.GrpcVorgangHead; +import lombok.extern.log4j.Log4j2; + +@Log4j2 +@Mapper(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE, nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) +public abstract class OzgCloudServiceKontoMapper { + + OzgCloudServiceKonto getServiceKonto(GrpcVorgangHead header) { + return header.hasServiceKonto() ? fromServiceKonto(header.getServiceKonto()) : null; + } + + @Mapping(target = "address", source = "postfachAddressesList") + abstract OzgCloudServiceKonto fromServiceKonto(GrpcServiceKonto serviceKonto); + + OzgCloudPostfachAddress fromPostfachAddresses(List<GrpcPostfachAddress> postfachAddresses) { + if (postfachAddresses.isEmpty()) { + return null; + } + if (postfachAddresses.size() > 1) { + LOG.error("More than one postfach address found. Using the first one."); + } + return fromPostfachAddress(postfachAddresses.getFirst()); + } + + @Mapping(target = "identifier", ignore = true) + @Mapping(target = "identifiers", source = "identifier") + abstract OzgCloudPostfachAddress fromPostfachAddress(GrpcPostfachAddress postfachAddress); + + List<OzgCloudPostfachAddressIdentifier> fromPostfachAddressIdentifier(GrpcObject identifier) { + if (!identifier.getSubObjectList().isEmpty()) { + LOG.error("Unexpected subObjects found in identifier. Ignoring them."); + } + return identifier.getPropertyList().stream().map(this::fromProperty).toList(); + } + + OzgCloudPostfachAddressIdentifier fromProperty(GrpcProperty grpcProperty) { + return OzgCloudPostfachAddressIdentifier.builder() + .name(grpcProperty.getName()) + .value(grpcProperty.getValueList().getFirst()) + .build(); + } + + OzgCloudServiceKontoType toOzgCloudServiceKontoType(String type) { + return Optional.ofNullable(type).map(StringUtils::trimToNull).map(OzgCloudServiceKontoType::from).orElse(null); + } + + OzgCloudTrustLevel toOzgCloudTrustLevel(String trustLevel) { + return Optional.ofNullable(trustLevel).map(StringUtils::trimToNull).map(OzgCloudTrustLevel::from).orElse(null); + } + +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangMapper.java index 6c3b9857bee531d344f2103b5efc16936e604522..b606499b6dd4ccccc6071c2dca64357b3fec1995 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangMapper.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangMapper.java @@ -1,18 +1,21 @@ package de.ozgcloud.apilib.vorgang.grpc; -import java.util.Optional; - import org.mapstruct.Mapper; import org.mapstruct.Mapping; +import org.mapstruct.NullValueCheckStrategy; +import org.mapstruct.NullValuePropertyMappingStrategy; +import org.mapstruct.factory.Mappers; -import de.ozgcloud.apilib.user.OzgCloudUserId; -import de.ozgcloud.apilib.vorgang.OzgCloudServiceKontoType; +import de.ozgcloud.apilib.vorgang.OzgCloudServiceKonto; +import de.ozgcloud.apilib.vorgang.OzgCloudUserIdMapper; import de.ozgcloud.apilib.vorgang.OzgCloudVorgang; import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper; -import de.ozgcloud.apilib.vorgang.OzgCloudVorgangStatus; +import de.ozgcloud.apilib.vorgang.OzgCloudVorgangStatusMapper; import de.ozgcloud.vorgang.vorgang.GrpcVorgangWithEingang; -@Mapper(uses = { OzgCloudEingangMapper.class, OzgCloudVorgangIdMapper.class }) +@Mapper(uses = { OzgCloudEingangMapper.class, OzgCloudVorgangIdMapper.class, OzgCloudUserIdMapper.class, OzgCloudVorgangStatusMapper.class }, // + nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE, + nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) public interface OzgCloudVorgangMapper { @Mapping(target = "eingangs", ignore = true) @@ -22,17 +25,11 @@ public interface OzgCloudVorgangMapper { @Mapping(target = "header.assignedTo", source = "assignedTo") @Mapping(target = "header.createdAt", source = "createdAt") @Mapping(target = "header.status", source = "status") - OzgCloudVorgang fromGrpc(GrpcVorgangWithEingang response); - - default OzgCloudServiceKontoType toOzgCloudServiceKontoType(String type) { - return Optional.ofNullable(type).map(OzgCloudServiceKontoType::from).orElse(null); - } - - default OzgCloudUserId toUserId(String userId) { - return Optional.ofNullable(userId).map(OzgCloudUserId::from).orElse(null); - } + @Mapping(target = "header.serviceKonto", expression = "java(getServiceKonto(grpcVorgangWithEingang))") + OzgCloudVorgang fromGrpc(GrpcVorgangWithEingang grpcVorgang); - default OzgCloudVorgangStatus toVorgangId(String status) { - return Optional.ofNullable(status).map(OzgCloudVorgangStatus::from).orElse(null); + default OzgCloudServiceKonto getServiceKonto(GrpcVorgangWithEingang grpcVorgang) { + var mapper = Mappers.getMapper(OzgCloudServiceKontoMapper.class); + return mapper.getServiceKonto(grpcVorgang.getHeader()); } } diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/file/OzgCloudFileTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/file/OzgCloudFileTestFactory.java index 04b41dc2577759935c667bbbc9e11928f846e135..9f5c7f920648a0e690b485a46418b34fab26e977 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/file/OzgCloudFileTestFactory.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/file/OzgCloudFileTestFactory.java @@ -4,7 +4,8 @@ import java.util.UUID; public class OzgCloudFileTestFactory { - public static final OzgCloudFileId ID = OzgCloudFileId.from(UUID.randomUUID().toString()); + public static final String ID_STR = UUID.randomUUID().toString(); + public static final OzgCloudFileId ID = OzgCloudFileId.from(ID_STR); public static final String NAME = "testfile.pdf"; public static final String CONTENT_TYPE = "application/pdf"; public static final long SIZE = 1024; diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/file/grpc/GrpcOzgCloudFileServiceTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/file/grpc/GrpcOzgCloudFileServiceTest.java index 8a648e34e975be9adb94b28ec9ae85848228e5f4..9a38e82b13193c62cb92fad6dd25a8108b33092c 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/file/grpc/GrpcOzgCloudFileServiceTest.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/file/grpc/GrpcOzgCloudFileServiceTest.java @@ -87,7 +87,7 @@ class GrpcOzgCloudFileServiceTest { void shouldAddFileId() { var request = service.buildFindFileRequest(OzgCloudFileTestFactory.ID); - assertThat(request.getFileIdList()).hasSize(1).first().isEqualTo(OzgCloudFileTestFactory.ID.toString()); + assertThat(request.getFileIdList()).hasSize(1).first().isEqualTo(OzgCloudFileTestFactory.ID_STR); } } @@ -131,7 +131,8 @@ class GrpcOzgCloudFileServiceTest { @Mock private GrpcUploadBinaryFileRequest uploadBinaryFileRequest; - GrpcUploadBinaryFileResponse response = GrpcUploadBinaryFileResponse.newBuilder().setFileId(OzgCloudFileTestFactory.ID.toString()) + GrpcUploadBinaryFileResponse response = + GrpcUploadBinaryFileResponse.newBuilder().setFileId(OzgCloudFileTestFactory.ID_STR) .build(); @BeforeEach diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/file/grpc/GrpcOzgFileTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/file/grpc/GrpcOzgFileTestFactory.java index 39790a4284445bff981f91e808b3f88b8c5a8fdd..0025acfdf0aac21dcd4af26cfe7f34c2bcf9ca2e 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/file/grpc/GrpcOzgFileTestFactory.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/file/grpc/GrpcOzgFileTestFactory.java @@ -11,7 +11,7 @@ public class GrpcOzgFileTestFactory { static GrpcOzgFile.Builder createBuilder() { return GrpcOzgFile.newBuilder() - .setId(OzgCloudFileTestFactory.ID.toString()) + .setId(OzgCloudFileTestFactory.ID_STR) .setName(OzgCloudFileTestFactory.NAME) .setContentType(OzgCloudFileTestFactory.CONTENT_TYPE) .setSize(OzgCloudFileTestFactory.SIZE); diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/file/grpc/OzgCloudFileMapperTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/file/grpc/OzgCloudFileMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ec898e7f8bac562d0c0bf1588b868f4013d9d2e2 --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/file/grpc/OzgCloudFileMapperTest.java @@ -0,0 +1,52 @@ +/* + * 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.apilib.file.grpc; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.Test; +import org.mapstruct.factory.Mappers; + +import de.ozgcloud.apilib.file.OzgCloudFileTestFactory; +import de.ozgcloud.apilib.vorgang.grpc.GrpcIncomingFileTestFactory; + +class OzgCloudFileMapperTest { + + private OzgCloudFileMapper mapper = Mappers.getMapper(OzgCloudFileMapper.class); + + @Test + void shouldMapFromGrpcOzgFile() { + var result = mapper.fromGrpc(GrpcOzgFileTestFactory.create()); + + assertThat(result).usingRecursiveComparison().isEqualTo(OzgCloudFileTestFactory.create()); + } + + @Test + void shouldMapFromGrpcIncomingFile() { + var result = mapper.fromIncomingFile(GrpcIncomingFileTestFactory.create()); + + assertThat(result).usingRecursiveComparison().isEqualTo(OzgCloudFileTestFactory.create()); + } +} \ No newline at end of file diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudAntragstellerTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudAntragstellerTestFactory.java index fb7c115d426b697674f03aabc796cbc604bff60f..bff6096434ac78f6e5ace3995c9869b415916782 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudAntragstellerTestFactory.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudAntragstellerTestFactory.java @@ -1,5 +1,7 @@ package de.ozgcloud.apilib.vorgang; +import java.util.List; + public class OzgCloudAntragstellerTestFactory { public static final String ANREDE = "Mr."; @@ -15,6 +17,16 @@ public class OzgCloudAntragstellerTestFactory { public static final String ORT = "City"; public static final String E_MAIL = "test@local"; public static final String TELEFON = "0123 2354 546"; + public static final String FIRMA_NAME = "TestFirma"; + + public static final String FIELD_NAME = "name"; + public static final String FIELD_LABEL = "label"; + public static final String FIELD_VALUE = "value"; + public static final String SUB_FORM_NAME = "sub-form-name"; + public static final String SUB_FORM_LABEL = "sub-form-label"; + public static final String SUB_FORM_FIELD_NAME = "sub-form-field-name"; + public static final String SUB_FORM_FIELD_LABEL = "sub-form-field-label"; + public static final String SUB_FORM_FIELD_VALUE = "sub-form-field-value"; public static OzgCloudAntragsteller create() { return createBuilder().build(); @@ -25,6 +37,7 @@ public class OzgCloudAntragstellerTestFactory { .anrede(ANREDE) .vorname(FIRSTNAME) .nachname(NACHNAME) + .firmaName(FIRMA_NAME) .geburtsdatum(GEBURTSDATUM) .geburtsort(GEBURTSORT) .geburtsname(GEBURTSNAME) @@ -33,6 +46,16 @@ public class OzgCloudAntragstellerTestFactory { .plz(PLZ) .ort(ORT) .email(E_MAIL) - .telefon(TELEFON); + .telefon(TELEFON) + .otherData(createOtherData()); + } + + public static List<OzgCloudFormDataEntry> createOtherData() { + return List.of( + OzgCloudFormField.builder().name(FIELD_NAME).label(FIELD_LABEL).value(FIELD_VALUE).build(), + OzgCloudSubForm.builder().name(SUB_FORM_NAME).label(SUB_FORM_LABEL) + .formEntry(OzgCloudFormField.builder().name(SUB_FORM_FIELD_NAME).label(SUB_FORM_FIELD_LABEL).value(SUB_FORM_FIELD_VALUE).build()) + .build() + ); } } diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudFileIdMapperTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudFileIdMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..b1200e28cf17b94430cada924ebfb02105f6cb13 --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudFileIdMapperTest.java @@ -0,0 +1,61 @@ +/* + * 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.apilib.vorgang; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.DisplayName; +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; + +import de.ozgcloud.apilib.file.OzgCloudFileTestFactory; + +class OzgCloudFileIdMapperTest { + + + private OzgCloudFileIdMapper mapper = Mappers.getMapper(OzgCloudFileIdMapper.class); + + @DisplayName("should map to null") + @ParameterizedTest(name = "when value is \"{0}\"") + @NullAndEmptySource + @ValueSource(strings = { " " }) + void shouldMapToNull(String value) { + var result = mapper.toFileId(value); + + assertThat(result).isNull(); + } + + @DisplayName("should map to fileId") + @Test + void shouldMapUserId() { + var result = mapper.toFileId(OzgCloudFileTestFactory.ID_STR); + + assertThat(result).isEqualTo(OzgCloudFileTestFactory.ID); + } + +} \ No newline at end of file diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddressIdentifierTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddressIdentifierTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..ac5f7ffec9d74e4a9ffb97627bce952cb7f1c381 --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddressIdentifierTestFactory.java @@ -0,0 +1,43 @@ +/* + * 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.apilib.vorgang; + +import de.ozgcloud.apilib.vorgang.OzgCloudPostfachAddressIdentifier.OzgCloudPostfachAddressIdentifierBuilder; + +public class OzgCloudPostfachAddressIdentifierTestFactory { + + public static final String NAME = "postfachId"; + public static final String VALUE = "0815"; + + public static OzgCloudPostfachAddressIdentifier create() { + return createBuilder().build(); + } + + public static OzgCloudPostfachAddressIdentifierBuilder createBuilder() { + return OzgCloudPostfachAddressIdentifier.builder() + .name(NAME) + .value(VALUE); + } +} diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddressTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddressTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..bd1970999c82573b05b263b8a16ed61e5b25c57a --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddressTestFactory.java @@ -0,0 +1,44 @@ +/* + * 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.apilib.vorgang; + +import de.ozgcloud.apilib.vorgang.OzgCloudPostfachAddress.OzgCloudPostfachAddressBuilder; + +public class OzgCloudPostfachAddressTestFactory { + + public static final String VERSION = "1.0"; + public static final int TYPE = 1; + + public static OzgCloudPostfachAddress create() { + return createBuilder().build(); + } + + public static OzgCloudPostfachAddressBuilder createBuilder() { + return OzgCloudPostfachAddress.builder() + .version(VERSION) + .type(TYPE) + .identifier(OzgCloudPostfachAddressIdentifierTestFactory.create()); + } +} diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKontoTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKontoTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..9d36c69171f0a0ce39bd42a3be7ed7b47a83dd01 --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKontoTestFactory.java @@ -0,0 +1,46 @@ +/* + * 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.apilib.vorgang; + +import de.ozgcloud.apilib.vorgang.OzgCloudServiceKonto.OzgCloudServiceKontoBuilder; + +public class OzgCloudServiceKontoTestFactory { + + public static final String TYPE_STR = "type"; + public static final OzgCloudServiceKontoType TYPE = OzgCloudServiceKontoType.from(TYPE_STR); + public static final String TRUST_LEVEL_STR = "trustLevel"; + public static final OzgCloudTrustLevel TRUST_LEVEL = OzgCloudTrustLevel.from(TRUST_LEVEL_STR); + + public static OzgCloudServiceKonto create() { + return createBuilder().build(); + } + + public static OzgCloudServiceKontoBuilder createBuilder() { + return OzgCloudServiceKonto.builder() + .type(TYPE) + .trustLevel(TRUST_LEVEL) + .address(OzgCloudPostfachAddressTestFactory.create()); + } +} diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudUserIdMapperTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudUserIdMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..489a1269c5c3e9b3214a314a87ac50ca10873ff3 --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudUserIdMapperTest.java @@ -0,0 +1,58 @@ +/* + * 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.apilib.vorgang; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.DisplayName; +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 OzgCloudUserIdMapperTest { + + private OzgCloudUserIdMapper mapper = Mappers.getMapper(OzgCloudUserIdMapper.class); + + @DisplayName("should map to null") + @ParameterizedTest(name = "when value is \"{0}\"") + @NullAndEmptySource + @ValueSource(strings = { " " }) + void shouldMapToNull(String value) { + var result = mapper.toUserId(value); + + assertThat(result).isNull(); + } + + @DisplayName("should map to userId") + @Test + void shouldMapUserId() { + var result = mapper.toUserId(OzgCloudVorgangHeaderTestFactory.USER_ID_STR); + + assertThat(result).isEqualTo(OzgCloudVorgangHeaderTestFactory.USER_ID); + } + +} \ No newline at end of file diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangEingangTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangEingangTestFactory.java index 65425325728fb048cfbb4b274d000b25ce738f5a..2ac771bed38259182436e1901023e69135daa9b4 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangEingangTestFactory.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangEingangTestFactory.java @@ -2,6 +2,9 @@ package de.ozgcloud.apilib.vorgang; import java.util.List; +import de.ozgcloud.apilib.file.OzgCloudFileTestFactory; +import de.ozgcloud.apilib.vorgang.grpc.OzgCloudFileGroupTestFactory; + public class OzgCloudVorgangEingangTestFactory { public static final String FIELD_NAME = "firstname"; @@ -23,14 +26,19 @@ public class OzgCloudVorgangEingangTestFactory { .header(OzgCloudEingangHeaderTestFactory.create()) .antragsteller(OzgCloudAntragstellerTestFactory.create()) .zustaendigeStelle(OzgCloudZustaendigeStelleTestFactory.create()) - .attachments(List.of(AttachmentTestFactory.createFileGroup())) - .formDataEntrys(List.<OzgCloudFormDataEntry>of( - OzgCloudFormField.builder().name(FIELD_NAME).label(FIELD_LABEL).value(FIELD_VALUE).build(), - OzgCloudSubForm.builder().name(SUB_FORM_NAME).label(SUB_FORM_LABEL) - .formEntry(OzgCloudFormField.builder() - .name(SUB_FORM_FIELD_NAME) - .label(SUB_FORM_FIELD_LABEL) - .value(SUB_FORM_FIELD_VALUE).build()) - .build())); + .attachment(OzgCloudFileGroupTestFactory.create()) + .representation(OzgCloudFileTestFactory.create()) + .formDataEntrys(createFormData()); + } + + public static List<OzgCloudFormDataEntry> createFormData() { + return List.of( + OzgCloudFormField.builder().name(FIELD_NAME).label(FIELD_LABEL).value(FIELD_VALUE).build(), + OzgCloudSubForm.builder().name(SUB_FORM_NAME).label(SUB_FORM_LABEL) + .formEntry(OzgCloudFormField.builder() + .name(SUB_FORM_FIELD_NAME) + .label(SUB_FORM_FIELD_LABEL) + .value(SUB_FORM_FIELD_VALUE).build()) + .build()); } } diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangHeaderTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangHeaderTestFactory.java index 3af1c6b618ec8cfd1211cc9b56fae2e2ba91dc41..dc49a95bcbb8d0217289219915b339e7fe9a3680 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangHeaderTestFactory.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangHeaderTestFactory.java @@ -7,11 +7,13 @@ import de.ozgcloud.apilib.user.OzgCloudUserId; public class OzgCloudVorgangHeaderTestFactory { - public static OzgCloudVorgangStatus STATUS = OzgCloudVorgangStatus.from("WORKING"); - public static String CREATED_AT_STR = "2023-04-01T10:00:15Z"; - public static ZonedDateTime CREATED_AT = ZonedDateTime.parse(CREATED_AT_STR); - public static OzgCloudUserId ASSIGNED_TO = OzgCloudUserId.from(UUID.randomUUID().toString()); - public static String AKTENZEICHEN = "DE_12345_XY"; + public static final String STATUS_STR = "WORKING"; + public static final OzgCloudVorgangStatus STATUS = OzgCloudVorgangStatus.from(STATUS_STR); + public static final String CREATED_AT_STR = "2023-04-01T10:00:15Z"; + public static final ZonedDateTime CREATED_AT = ZonedDateTime.parse(CREATED_AT_STR); + public static final String USER_ID_STR = UUID.randomUUID().toString(); + public static final OzgCloudUserId USER_ID = OzgCloudUserId.from(USER_ID_STR); + public static final String AKTENZEICHEN = "DE_12345_XY"; public static OzgCloudVorgangHeader create() { return createBuilder().build(); @@ -21,7 +23,8 @@ public class OzgCloudVorgangHeaderTestFactory { return OzgCloudVorgangHeader.builder() .status(STATUS) .createdAt(CREATED_AT) - .assignedTo(ASSIGNED_TO) - .aktenzeichen(AKTENZEICHEN); + .assignedTo(USER_ID) + .aktenzeichen(AKTENZEICHEN) + .serviceKonto(OzgCloudServiceKontoTestFactory.create()); } } diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangStatusMapperTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangStatusMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..5757cd593844adbf23f04570202dc6e7192e652b --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangStatusMapperTest.java @@ -0,0 +1,57 @@ +/* + * 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.apilib.vorgang; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.DisplayName; +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 OzgCloudVorgangStatusMapperTest { + + private OzgCloudVorgangStatusMapper mapper = Mappers.getMapper(OzgCloudVorgangStatusMapper.class); + + @DisplayName("should map to null") + @ParameterizedTest(name = "when value is \"{0}\"") + @NullAndEmptySource + @ValueSource(strings = { " " }) + void shouldMapToNull(String value) { + var result = mapper.toVorgangStatus(value); + + assertThat(result).isNull(); + } + + @DisplayName("should map to vorgangStatus") + @Test + void shouldMapUserId() { + var result = mapper.toVorgangStatus(OzgCloudVorgangHeaderTestFactory.STATUS_STR); + + assertThat(result).isEqualTo(OzgCloudVorgangHeaderTestFactory.STATUS); + } +} \ No newline at end of file diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcAntragstellerTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcAntragstellerTestFactory.java index 41e623094a2cbb4488e683c9d3ee6fc606f21881..55473e92261ef1dde24ae00edd873fbd27dbce07 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcAntragstellerTestFactory.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcAntragstellerTestFactory.java @@ -3,6 +3,9 @@ package de.ozgcloud.apilib.vorgang.grpc; import static de.ozgcloud.apilib.vorgang.OzgCloudAntragstellerTestFactory.*; import de.ozgcloud.vorgang.vorgang.GrpcAntragsteller; +import de.ozgcloud.vorgang.vorgang.GrpcFormData; +import de.ozgcloud.vorgang.vorgang.GrpcFormField; +import de.ozgcloud.vorgang.vorgang.GrpcSubForm; public class GrpcAntragstellerTestFactory { @@ -15,6 +18,7 @@ public class GrpcAntragstellerTestFactory { .setAnrede(ANREDE) .setVorname(FIRSTNAME) .setNachname(NACHNAME) + .setFirmaName(FIRMA_NAME) .setGeburtsdatum(GEBURTSDATUM) .setGeburtsort(GEBURTSORT) .setGeburtsname(GEBURTSNAME) @@ -23,6 +27,15 @@ public class GrpcAntragstellerTestFactory { .setPlz(PLZ) .setOrt(ORT) .setEmail(E_MAIL) - .setTelefon(TELEFON); + .setTelefon(TELEFON) + .setOtherData(createOtherData()); + } + + public static GrpcFormData createOtherData() { + return GrpcFormData.newBuilder() + .addField(GrpcFormField.newBuilder().setName(FIELD_NAME).setLabel(FIELD_LABEL).setValue(FIELD_VALUE)) + .addForm(GrpcSubForm.newBuilder().setTitle(SUB_FORM_NAME).setLabel(SUB_FORM_LABEL) + .addField(GrpcFormField.newBuilder().setName(SUB_FORM_FIELD_NAME).setLabel(SUB_FORM_FIELD_LABEL).setValue(SUB_FORM_FIELD_VALUE))) + .build(); } } diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcEingangTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcEingangTestFactory.java index 46ec136ef9ceb19cb1ef4da0e47f2f9939f12e8b..72c4ec45d4021e14679fd9f86b9baabaf064d4e7 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcEingangTestFactory.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcEingangTestFactory.java @@ -18,6 +18,10 @@ public class GrpcEingangTestFactory { .setHeader(GrpcEingangHeaderTestFactory.create()) .setAntragsteller(GrpcAntragstellerTestFactory.create()) .setZustaendigeStelle(GrpcZustaendigeStelleTestFactory.create()) + .setNumberOfAttachments(1) + .addAttachments(GrpcIncomingFileGroupTestFactory.create()) + .setNumberOfRepresentations(1) + .addRepresentations(GrpcIncomingFileTestFactory.create()) .setFormData(createFormData()); } diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcIncomingFileGroupTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcIncomingFileGroupTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..3c72a423340bed378beccfb281888f198765a293 --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcIncomingFileGroupTestFactory.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.apilib.vorgang.grpc; + +import de.ozgcloud.vorgang.vorgang.GrpcIncomingFileGroup; + +public class GrpcIncomingFileGroupTestFactory { + + public static GrpcIncomingFileGroup create() { + return createBuilder().build(); + } + + public static GrpcIncomingFileGroup.Builder createBuilder() { + return GrpcIncomingFileGroup.newBuilder() + .setName(OzgCloudFileGroupTestFactory.NAME) + .addFiles(GrpcIncomingFileTestFactory.create()); + } +} diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcIncomingFileTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcIncomingFileTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..978a2fdfb16506a3a8795d62f0576afdbd70267e --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcIncomingFileTestFactory.java @@ -0,0 +1,43 @@ +/* + * 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.apilib.vorgang.grpc; + +import de.ozgcloud.apilib.file.OzgCloudFileTestFactory; +import de.ozgcloud.vorgang.vorgang.GrpcIncomingFile; + +public class GrpcIncomingFileTestFactory { + + public static GrpcIncomingFile create() { + return createBuilder().build(); + } + + public static GrpcIncomingFile.Builder createBuilder() { + return GrpcIncomingFile.newBuilder() + .setId(OzgCloudFileTestFactory.ID_STR) + .setName(OzgCloudFileTestFactory.NAME) + .setContentType(OzgCloudFileTestFactory.CONTENT_TYPE) + .setSize(OzgCloudFileTestFactory.SIZE); + } +} diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcServiceKontoTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcServiceKontoTestFactory.java index 0ef9d48626480d6c3fb2f60ad14b1e46d192456f..6da9ab317a867a2580e605c922ba6a1912b4c72e 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcServiceKontoTestFactory.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcServiceKontoTestFactory.java @@ -1,5 +1,8 @@ package de.ozgcloud.apilib.vorgang.grpc; +import de.ozgcloud.apilib.vorgang.OzgCloudPostfachAddressIdentifierTestFactory; +import de.ozgcloud.apilib.vorgang.OzgCloudPostfachAddressTestFactory; +import de.ozgcloud.apilib.vorgang.OzgCloudServiceKontoTestFactory; import de.ozgcloud.vorgang.common.GrpcObject; import de.ozgcloud.vorgang.common.GrpcProperty; import de.ozgcloud.vorgang.vorgang.GrpcPostfachAddress; @@ -7,20 +10,20 @@ import de.ozgcloud.vorgang.vorgang.GrpcServiceKonto; public class GrpcServiceKontoTestFactory { - public static final String TYPE = "OSI"; - public static final String VERSION = "1.0"; - public static GrpcServiceKonto create() { return createBuilder().build(); } public static GrpcServiceKonto.Builder createBuilder() { return GrpcServiceKonto.newBuilder() - .setType(TYPE) + .setType(OzgCloudServiceKontoTestFactory.TYPE_STR) + .setTrustLevel(OzgCloudServiceKontoTestFactory.TRUST_LEVEL_STR) .addPostfachAddresses(GrpcPostfachAddress.newBuilder() - .setVersion(VERSION) + .setVersion(OzgCloudPostfachAddressTestFactory.VERSION) + .setType(OzgCloudPostfachAddressTestFactory.TYPE) .setIdentifier(GrpcObject.newBuilder().addProperty(GrpcProperty.newBuilder() - .setName("postfachId").addValue("0815").build()))); + .setName(OzgCloudPostfachAddressIdentifierTestFactory.NAME) + .addValue(OzgCloudPostfachAddressIdentifierTestFactory.VALUE).build()))); } } diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcVorgangHeaderTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcVorgangHeaderTestFactory.java index 18ba7a20a7c956b5418d2f5f551ba31e9804dc6a..319263888a6adb81ba2b5ed5b70db84bf85adc03 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcVorgangHeaderTestFactory.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcVorgangHeaderTestFactory.java @@ -15,11 +15,11 @@ public class GrpcVorgangHeaderTestFactory { return GrpcVorgangHeader.newBuilder() .setId(ID.toString()) .setVersion(VERSION) - .setStatus(STATUS.toString()) + .setStatus(STATUS_STR) .setName(VORGANG_NAME) .setCreatedAt(CREATED_AT_STR) .setAktenzeichen(AKTENZEICHEN) - .setAssignedTo(ASSIGNED_TO.toString()) + .setAssignedTo(USER_ID_STR) .setNummer(VORGANG_NUMMER); } } diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcVorgangWithEingangTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcVorgangWithEingangTestFactory.java index 2a151612dcd4f89f6f01e3dcb6095da11e335ae4..02c944cd8ec4c48cd8325fe9c1e744c3f1f9a926 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcVorgangWithEingangTestFactory.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/GrpcVorgangWithEingangTestFactory.java @@ -18,9 +18,9 @@ public class GrpcVorgangWithEingangTestFactory { .setName(VORGANG_NAME) .setNummer(VORGANG_NUMMER) .setAktenzeichen(AKTENZEICHEN) - .setAssignedTo(ASSIGNED_TO.toString()) + .setAssignedTo(USER_ID.toString()) .setCreatedAt(CREATED_AT_STR) - .setStatus(STATUS.toString()) + .setStatus(STATUS_STR) .setHeader(GrpcVorgangHeadTestFactory.create()) .setEingang(GrpcEingangTestFactory.create()); } diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudEingangMapperTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudEingangMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..c30939096624f2302d3186e50ac875e761f46ab5 --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudEingangMapperTest.java @@ -0,0 +1,45 @@ +/* + * 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.apilib.vorgang.grpc; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.Test; +import org.mapstruct.factory.Mappers; + +import de.ozgcloud.apilib.vorgang.OzgCloudVorgangEingangTestFactory; + +class OzgCloudEingangMapperTest { + + private OzgCloudEingangMapper ozgCloudEingangMapper = Mappers.getMapper(OzgCloudEingangMapper.class); + + @Test + void shouldMapFromGrpcEingang() { + var result = ozgCloudEingangMapper.fromGrpc(GrpcEingangTestFactory.create()); + + assertThat(result).usingRecursiveComparison().isEqualTo(OzgCloudVorgangEingangTestFactory.create()); + } + +} \ No newline at end of file diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudFileGroupMapperTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudFileGroupMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..fbdbb062926af203351bc32333082eb11c2d36aa --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudFileGroupMapperTest.java @@ -0,0 +1,42 @@ +/* + * 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.apilib.vorgang.grpc; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.Test; +import org.mapstruct.factory.Mappers; + +class OzgCloudFileGroupMapperTest { + + private OzgCloudFileGroupMapper mapper = Mappers.getMapper(OzgCloudFileGroupMapper.class); + + @Test + void shouldMapFromGrpc() { + var result = mapper.fromIncomingFileGroup(GrpcIncomingFileGroupTestFactory.create()); + + assertThat(result).usingRecursiveComparison().isEqualTo(OzgCloudFileGroupTestFactory.create()); + } +} \ No newline at end of file diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudFileGroupTestFactory.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudFileGroupTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..340c223a65a498aa04bebdd578cf2a9775634bcf --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudFileGroupTestFactory.java @@ -0,0 +1,44 @@ +/* + * 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.apilib.vorgang.grpc; + +import de.ozgcloud.apilib.file.OzgCloudFileGroup; +import de.ozgcloud.apilib.file.OzgCloudFileGroup.OzgCloudFileGroupBuilder; +import de.ozgcloud.apilib.file.OzgCloudFileTestFactory; + +public class OzgCloudFileGroupTestFactory { + + public static final String NAME = "File Group Name"; + + public static OzgCloudFileGroup create() { + return createBuilder().build(); + } + + public static OzgCloudFileGroupBuilder createBuilder() { + return OzgCloudFileGroup.builder() + .name(NAME) + .file(OzgCloudFileTestFactory.create()); + } +} diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudServiceKontoMapperTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudServiceKontoMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..34527bc6501bf5b2ff1b551ad7ae216027891b66 --- /dev/null +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudServiceKontoMapperTest.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.apilib.vorgang.grpc; + +import static org.assertj.core.api.Assertions.*; +import static org.mockito.Mockito.*; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mapstruct.factory.Mappers; +import org.mockito.Spy; + +import de.ozgcloud.apilib.vorgang.OzgCloudServiceKontoTestFactory; + +class OzgCloudServiceKontoMapperTest { + + @Spy + private OzgCloudServiceKontoMapper mapper = Mappers.getMapper(OzgCloudServiceKontoMapper.class); + + @Nested + class TestGetServiceKonto { + + @Test + void shouldCallToServiceKonto() { + var serviceKonto = OzgCloudServiceKontoTestFactory.create(); + doReturn(serviceKonto).when(mapper).fromServiceKonto(any()); + var grpcServiceKonto = GrpcServiceKontoTestFactory.create(); + + mapper.getServiceKonto(GrpcVorgangHeadTestFactory.createBuilder().setServiceKonto(grpcServiceKonto).build()); + + verify(mapper).fromServiceKonto(grpcServiceKonto); + } + + @Test + void shouldReturnNull() { + var result = mapper.getServiceKonto(GrpcVorgangHeadTestFactory.createBuilder().clearServiceKonto().build()); + + assertThat(result).isNull(); + } + } + + @Nested + class TestFromServiceKonto { + + @Test + void shouldMapServiceKonto() { + var result = mapper.fromServiceKonto(GrpcServiceKontoTestFactory.create()); + + assertThat(result).usingRecursiveComparison().isEqualTo(OzgCloudServiceKontoTestFactory.create()); + } + } + +} \ No newline at end of file diff --git a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangMapperTest.java b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangMapperTest.java index 197b54dfe9e8a549b39924c54e172cda05a7d139..dce9d6c121361753ee1415f6e4895a1f852cb9be 100644 --- a/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangMapperTest.java +++ b/api-lib-core/src/test/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangMapperTest.java @@ -1,3 +1,27 @@ +/* + * 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.apilib.vorgang.grpc; import static org.assertj.core.api.Assertions.*; @@ -51,5 +75,4 @@ class OzgCloudVorgangMapperTest { .isEqualTo(OzgCloudVorgangEingangTestFactory.create()); } } - }