Skip to content
Snippets Groups Projects
Commit 0f71608e authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'OZG-6990 Archivierung: Vorgang auf in Archivierung setzen'...

Merge pull request 'OZG-6990 Archivierung: Vorgang auf in Archivierung setzen' (#36) from OZG-6990-vorgang-archivierung-setzen into master

Reviewed-on: https://git.ozg-sh.de/ozgcloud-lib/api-lib/pulls/36


Reviewed-by: default avatarOZGCloud <ozgcloud@mgm-tp.com>
parents e69428ee dae0d366
No related branches found
No related tags found
No related merge requests found
Showing
with 949 additions and 0 deletions
/*
* 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.client_attribute;
public enum OzgCloudAccessPermission {
PRIVATE, READ_ONLY, READ_WRITE
}
/*
* 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.client_attribute;
import lombok.experimental.SuperBuilder;
@SuperBuilder
public final class OzgCloudBooleanClientAttribute extends OzgCloudClientAttribute<Boolean> {
}
/*
* 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.client_attribute;
import lombok.Builder;
import lombok.Getter;
import lombok.experimental.SuperBuilder;
@SuperBuilder
@Getter
abstract sealed class OzgCloudClientAttribute<T> permits OzgCloudBooleanClientAttribute, OzgCloudStringClientAttribute,
OzgCloudLongClientAttribute, OzgCloudDoubleClientAttribute {
private String clientName;
private String attributeName;
@Builder.Default
private OzgCloudAccessPermission access = OzgCloudAccessPermission.PRIVATE;
private T value;
}
/*
* 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.client_attribute;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId;
public interface OzgCloudClientAttributeService {
void setClientAttribute(OzgCloudBooleanClientAttribute clientAttribute, OzgCloudVorgangId vorgangId);
void setClientAttribute(OzgCloudStringClientAttribute clientAttribute, OzgCloudVorgangId vorgangId);
void setClientAttribute(OzgCloudLongClientAttribute clientAttribute, OzgCloudVorgangId vorgangId);
void setClientAttribute(OzgCloudDoubleClientAttribute clientAttribute, OzgCloudVorgangId vorgangId);
}
/*
* 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.client_attribute;
import lombok.experimental.SuperBuilder;
@SuperBuilder
public final class OzgCloudDoubleClientAttribute extends OzgCloudClientAttribute<Double> {
}
/*
* 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.client_attribute;
import lombok.experimental.SuperBuilder;
@SuperBuilder
public final class OzgCloudLongClientAttribute extends OzgCloudClientAttribute<Long> {
}
/*
* 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.client_attribute;
import lombok.experimental.SuperBuilder;
@SuperBuilder
public final class OzgCloudStringClientAttribute extends OzgCloudClientAttribute<String> {
}
/*
* 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.client_attribute.grpc;
import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeService;
import de.ozgcloud.apilib.client_attribute.OzgCloudBooleanClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudDoubleClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudLongClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudStringClientAttribute;
import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextAttachingInterceptor;
import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextProvider;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId;
import de.ozgcloud.vorgang.grpc.clientAttribute.ClientAttributeServiceGrpc.ClientAttributeServiceBlockingStub;
import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttribute;
import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcSetClientAttributeRequest;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public class OzgCloudClientAttributeGrpcService implements OzgCloudClientAttributeService {
private final ClientAttributeServiceBlockingStub serviceBlockingStub;
private final OzgCloudClientAttributeMapper clientAttributeMapper;
private final OzgCloudCallContextProvider contextProvider;
@Override
public void setClientAttribute(OzgCloudBooleanClientAttribute clientAttribute, OzgCloudVorgangId vorgangId) {
doSetClientAttribute(clientAttributeMapper.toGrpc(clientAttribute), vorgangId);
}
@Override
public void setClientAttribute(OzgCloudStringClientAttribute clientAttribute, OzgCloudVorgangId vorgangId) {
doSetClientAttribute(clientAttributeMapper.toGrpc(clientAttribute), vorgangId);
}
@Override
public void setClientAttribute(OzgCloudLongClientAttribute clientAttribute, OzgCloudVorgangId vorgangId) {
doSetClientAttribute(clientAttributeMapper.toGrpc(clientAttribute), vorgangId);
}
@Override
public void setClientAttribute(OzgCloudDoubleClientAttribute clientAttribute, OzgCloudVorgangId vorgangId) {
doSetClientAttribute(clientAttributeMapper.toGrpc(clientAttribute), vorgangId);
}
void doSetClientAttribute(GrpcClientAttribute clientAttribute, OzgCloudVorgangId vorgangId) {
getAttributesServiceStub().set(buildRequest(clientAttribute, vorgangId.toString()));
}
GrpcSetClientAttributeRequest buildRequest(GrpcClientAttribute attribute, String vorgangId) {
return GrpcSetClientAttributeRequest.newBuilder().setVorgangId(vorgangId).setAttribute(attribute).build();
}
ClientAttributeServiceBlockingStub getAttributesServiceStub() {
return serviceBlockingStub.withInterceptors(new OzgCloudCallContextAttachingInterceptor(contextProvider));
}
}
/*
* 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.client_attribute.grpc;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.NullValueCheckStrategy;
import org.mapstruct.ReportingPolicy;
import de.ozgcloud.apilib.client_attribute.OzgCloudBooleanClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudDoubleClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudLongClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudStringClientAttribute;
import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttribute;
import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttributeValue;
@Mapper(nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, unmappedTargetPolicy = ReportingPolicy.WARN)
public interface OzgCloudClientAttributeMapper {
@Mapping(target = "valueOrBuilder", ignore = true)
@Mapping(target = "unknownFields", ignore = true)
@Mapping(target = "mergeValue", ignore = true)
@Mapping(target = "mergeUnknownFields", ignore = true)
@Mapping(target = "mergeFrom", ignore = true)
@Mapping(target = "defaultInstanceForType", ignore = true)
@Mapping(target = "clientNameBytes", ignore = true)
@Mapping(target = "clearOneof", ignore = true)
@Mapping(target = "clearField", ignore = true)
@Mapping(target = "attributeNameBytes", ignore = true)
@Mapping(target = "allFields", ignore = true)
@Mapping(target = "accessValue", ignore = true)
GrpcClientAttribute toGrpc(OzgCloudBooleanClientAttribute attribute);
@Mapping(target = "unknownFields", ignore = true)
@Mapping(target = "stringValueBytes", ignore = true)
@Mapping(target = "stringValue", ignore = true)
@Mapping(target = "mergeUnknownFields", ignore = true)
@Mapping(target = "mergeFrom", ignore = true)
@Mapping(target = "intValue", ignore = true)
@Mapping(target = "doubleValue", ignore = true)
@Mapping(target = "defaultInstanceForType", ignore = true)
@Mapping(target = "clearOneof", ignore = true)
@Mapping(target = "clearField", ignore = true)
@Mapping(target = "allFields", ignore = true)
@Mapping(target = "boolValue", source = "value")
GrpcClientAttributeValue toValue(Boolean value);
@Mapping(target = "valueOrBuilder", ignore = true)
@Mapping(target = "unknownFields", ignore = true)
@Mapping(target = "mergeValue", ignore = true)
@Mapping(target = "mergeUnknownFields", ignore = true)
@Mapping(target = "mergeFrom", ignore = true)
@Mapping(target = "defaultInstanceForType", ignore = true)
@Mapping(target = "clientNameBytes", ignore = true)
@Mapping(target = "clearOneof", ignore = true)
@Mapping(target = "clearField", ignore = true)
@Mapping(target = "attributeNameBytes", ignore = true)
@Mapping(target = "allFields", ignore = true)
@Mapping(target = "accessValue", ignore = true)
GrpcClientAttribute toGrpc(OzgCloudStringClientAttribute attribute);
@Mapping(target = "unknownFields", ignore = true)
@Mapping(target = "stringValueBytes", ignore = true)
@Mapping(target = "mergeUnknownFields", ignore = true)
@Mapping(target = "mergeFrom", ignore = true)
@Mapping(target = "intValue", ignore = true)
@Mapping(target = "doubleValue", ignore = true)
@Mapping(target = "defaultInstanceForType", ignore = true)
@Mapping(target = "clearOneof", ignore = true)
@Mapping(target = "clearField", ignore = true)
@Mapping(target = "boolValue", ignore = true)
@Mapping(target = "allFields", ignore = true)
@Mapping(target = "stringValue", source = "value")
GrpcClientAttributeValue toValue(String value);
@Mapping(target = "valueOrBuilder", ignore = true)
@Mapping(target = "unknownFields", ignore = true)
@Mapping(target = "mergeValue", ignore = true)
@Mapping(target = "mergeUnknownFields", ignore = true)
@Mapping(target = "mergeFrom", ignore = true)
@Mapping(target = "defaultInstanceForType", ignore = true)
@Mapping(target = "clientNameBytes", ignore = true)
@Mapping(target = "clearOneof", ignore = true)
@Mapping(target = "clearField", ignore = true)
@Mapping(target = "attributeNameBytes", ignore = true)
@Mapping(target = "allFields", ignore = true)
@Mapping(target = "accessValue", ignore = true)
GrpcClientAttribute toGrpc(OzgCloudLongClientAttribute attribute);
@Mapping(target = "unknownFields", ignore = true)
@Mapping(target = "stringValueBytes", ignore = true)
@Mapping(target = "stringValue", ignore = true)
@Mapping(target = "mergeUnknownFields", ignore = true)
@Mapping(target = "mergeFrom", ignore = true)
@Mapping(target = "doubleValue", ignore = true)
@Mapping(target = "defaultInstanceForType", ignore = true)
@Mapping(target = "clearOneof", ignore = true)
@Mapping(target = "clearField", ignore = true)
@Mapping(target = "boolValue", ignore = true)
@Mapping(target = "allFields", ignore = true)
@Mapping(target = "intValue", source = "value")
GrpcClientAttributeValue toValue(Long value);
@Mapping(target = "valueOrBuilder", ignore = true)
@Mapping(target = "unknownFields", ignore = true)
@Mapping(target = "mergeValue", ignore = true)
@Mapping(target = "mergeUnknownFields", ignore = true)
@Mapping(target = "mergeFrom", ignore = true)
@Mapping(target = "defaultInstanceForType", ignore = true)
@Mapping(target = "clientNameBytes", ignore = true)
@Mapping(target = "clearOneof", ignore = true)
@Mapping(target = "clearField", ignore = true)
@Mapping(target = "attributeNameBytes", ignore = true)
@Mapping(target = "allFields", ignore = true)
@Mapping(target = "accessValue", ignore = true)
GrpcClientAttribute toGrpc(OzgCloudDoubleClientAttribute attribute);
@Mapping(target = "unknownFields", ignore = true)
@Mapping(target = "stringValueBytes", ignore = true)
@Mapping(target = "stringValue", ignore = true)
@Mapping(target = "mergeUnknownFields", ignore = true)
@Mapping(target = "mergeFrom", ignore = true)
@Mapping(target = "intValue", ignore = true)
@Mapping(target = "defaultInstanceForType", ignore = true)
@Mapping(target = "clearOneof", ignore = true)
@Mapping(target = "clearField", ignore = true)
@Mapping(target = "boolValue", ignore = true)
@Mapping(target = "allFields", ignore = true)
@Mapping(target = "doubleValue", source = "value")
GrpcClientAttributeValue toValue(Double value);
}
/*
* 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.client_attribute;
import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcAccessPermission;
import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttribute;
import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttributeValue;
public class GrpcClientAttributeTestFactory {
public static final GrpcAccessPermission ACCESS_PERMISSION = GrpcAccessPermission.READ_ONLY;
public static final GrpcClientAttributeValue BOOLEAN_VALUE =
GrpcClientAttributeValue.newBuilder().setBoolValue(OzgCloudClientAttributeTestFactory.BOOLEAN_VALUE).build();
public static final GrpcClientAttributeValue STRING_VALUE =
GrpcClientAttributeValue.newBuilder().setStringValue(OzgCloudClientAttributeTestFactory.STRING_VALUE).build();
public static final GrpcClientAttributeValue LONG_VALUE = GrpcClientAttributeValue.newBuilder().setIntValue(
OzgCloudClientAttributeTestFactory.LONG_VALUE).build();
public static final GrpcClientAttributeValue DOUBLE_VALUE =
GrpcClientAttributeValue.newBuilder().setDoubleValue(OzgCloudClientAttributeTestFactory.DOUBLE_VALUE).build();
public static GrpcClientAttribute createBoolean() {
return createBuilder().setValue(BOOLEAN_VALUE).build();
}
public static GrpcClientAttribute createString() {
return createBuilder().setValue(STRING_VALUE).build();
}
public static GrpcClientAttribute createLong() {
return createBuilder().setValue(LONG_VALUE).build();
}
public static GrpcClientAttribute createDouble() {
return createBuilder().setValue(DOUBLE_VALUE).build();
}
public static GrpcClientAttribute.Builder createBuilder() {
return GrpcClientAttribute.newBuilder()
.setClientName(OzgCloudClientAttributeTestFactory.CLIENT)
.setAttributeName(OzgCloudClientAttributeTestFactory.ATTRIBUTE_NAME)
.setAccess(ACCESS_PERMISSION);
}
}
/*
* 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.client_attribute;
import com.thedeanda.lorem.LoremIpsum;
import de.ozgcloud.apilib.client_attribute.OzgCloudBooleanClientAttribute.OzgCloudBooleanClientAttributeBuilder;
import de.ozgcloud.apilib.client_attribute.OzgCloudDoubleClientAttribute.OzgCloudDoubleClientAttributeBuilder;
import de.ozgcloud.apilib.client_attribute.OzgCloudLongClientAttribute.OzgCloudLongClientAttributeBuilder;
import de.ozgcloud.apilib.client_attribute.OzgCloudStringClientAttribute.OzgCloudStringClientAttributeBuilder;
public class OzgCloudClientAttributeTestFactory {
public static final String CLIENT = LoremIpsum.getInstance().getWords(1) + "-Client";
public static final String ATTRIBUTE_NAME = LoremIpsum.getInstance().getWords(1);
public static final OzgCloudAccessPermission ACCESS_PERMISSION = OzgCloudAccessPermission.READ_ONLY;
public static final Boolean BOOLEAN_VALUE = true;
public static final String STRING_VALUE = LoremIpsum.getInstance().getWords(1);
public static final Long LONG_VALUE = 100L;
public static final Double DOUBLE_VALUE = 2.4;
public static OzgCloudBooleanClientAttribute createBoolean() {
return createBooleanBuilder().build();
}
public static OzgCloudBooleanClientAttributeBuilder<?, ?> createBooleanBuilder() {
return OzgCloudBooleanClientAttribute.builder()
.clientName(CLIENT)
.attributeName(ATTRIBUTE_NAME)
.access(ACCESS_PERMISSION)
.value(BOOLEAN_VALUE);
}
public static OzgCloudStringClientAttribute createString() {
return createStringBuilder().build();
}
public static OzgCloudStringClientAttributeBuilder<?, ?> createStringBuilder() {
return OzgCloudStringClientAttribute.builder()
.clientName(CLIENT)
.attributeName(ATTRIBUTE_NAME)
.access(ACCESS_PERMISSION)
.value(STRING_VALUE);
}
public static OzgCloudLongClientAttribute createLong() {
return createLongBuilder().build();
}
public static OzgCloudLongClientAttributeBuilder<?, ?> createLongBuilder() {
return OzgCloudLongClientAttribute.builder()
.clientName(CLIENT)
.attributeName(ATTRIBUTE_NAME)
.access(ACCESS_PERMISSION)
.value(LONG_VALUE);
}
public static OzgCloudDoubleClientAttribute createDouble() {
return createDoubleBuilder().build();
}
public static OzgCloudDoubleClientAttributeBuilder<?, ?> createDoubleBuilder() {
return OzgCloudDoubleClientAttribute.builder()
.clientName(CLIENT)
.attributeName(ATTRIBUTE_NAME)
.access(ACCESS_PERMISSION)
.value(DOUBLE_VALUE);
}
}
/*
* 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.client_attribute.grpc;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Spy;
import org.springframework.test.util.ReflectionTestUtils;
import de.ozgcloud.apilib.client_attribute.OzgCloudBooleanClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeTestFactory;
import de.ozgcloud.apilib.client_attribute.OzgCloudDoubleClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudLongClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudStringClientAttribute;
import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextAttachingInterceptor;
import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextProvider;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangTestFactory;
import de.ozgcloud.vorgang.grpc.clientAttribute.ClientAttributeServiceGrpc.ClientAttributeServiceBlockingStub;
import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttribute;
import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcSetClientAttributeRequest;
class OzgCloudClientAttributeGrpcServiceTest {
@Spy
@InjectMocks
private OzgCloudClientAttributeGrpcService service;
@Mock
private ClientAttributeServiceBlockingStub serviceBlockingStub;
@Mock
private OzgCloudClientAttributeMapper clientAttributeMapper;
@Mock
private OzgCloudCallContextProvider contextProvider;
@Mock
private GrpcClientAttribute grpcClientAttribute;
@Nested
class TestSetClientAttribute {
@BeforeEach
void init() {
doNothing().when(service).doSetClientAttribute(any(GrpcClientAttribute.class), any());
}
@Nested
class TestBoolean {
private static final OzgCloudBooleanClientAttribute CLIENT_ATTRIBUTE = OzgCloudClientAttributeTestFactory.createBoolean();
@BeforeEach
void init() {
doReturn(grpcClientAttribute).when(clientAttributeMapper).toGrpc(any(OzgCloudBooleanClientAttribute.class));
}
@Test
void shouldCallClientAttributeMapper() {
service.setClientAttribute(CLIENT_ATTRIBUTE, OzgCloudVorgangTestFactory.ID);
verify(clientAttributeMapper).toGrpc(CLIENT_ATTRIBUTE);
}
@Test
void shouldCallSetClientAttribute() {
service.setClientAttribute(CLIENT_ATTRIBUTE, OzgCloudVorgangTestFactory.ID);
verify(service).doSetClientAttribute(grpcClientAttribute, OzgCloudVorgangTestFactory.ID);
}
}
@Nested
class TestString {
private static final OzgCloudStringClientAttribute CLIENT_ATTRIBUTE = OzgCloudClientAttributeTestFactory.createString();
@BeforeEach
void init() {
doReturn(grpcClientAttribute).when(clientAttributeMapper).toGrpc(any(OzgCloudStringClientAttribute.class));
}
@Test
void shouldCallClientAttributeMapper() {
service.setClientAttribute(CLIENT_ATTRIBUTE, OzgCloudVorgangTestFactory.ID);
verify(clientAttributeMapper).toGrpc(CLIENT_ATTRIBUTE);
}
@Test
void shouldCallSetClientAttribute() {
service.setClientAttribute(CLIENT_ATTRIBUTE, OzgCloudVorgangTestFactory.ID);
verify(service).doSetClientAttribute(grpcClientAttribute, OzgCloudVorgangTestFactory.ID);
}
}
@Nested
class TestLong {
private static final OzgCloudLongClientAttribute CLIENT_ATTRIBUTE = OzgCloudClientAttributeTestFactory.createLong();
@BeforeEach
void init() {
doReturn(grpcClientAttribute).when(clientAttributeMapper).toGrpc(any(OzgCloudLongClientAttribute.class));
}
@Test
void shouldCallClientAttributeMapper() {
service.setClientAttribute(CLIENT_ATTRIBUTE, OzgCloudVorgangTestFactory.ID);
verify(clientAttributeMapper).toGrpc(CLIENT_ATTRIBUTE);
}
@Test
void shouldCallSetClientAttribute() {
service.setClientAttribute(CLIENT_ATTRIBUTE, OzgCloudVorgangTestFactory.ID);
verify(service).doSetClientAttribute(grpcClientAttribute, OzgCloudVorgangTestFactory.ID);
}
}
@Nested
class TestDouble {
private static final OzgCloudDoubleClientAttribute CLIENT_ATTRIBUTE = OzgCloudClientAttributeTestFactory.createDouble();
@BeforeEach
void init() {
doReturn(grpcClientAttribute).when(clientAttributeMapper).toGrpc(any(OzgCloudDoubleClientAttribute.class));
}
@Test
void shouldCallClientAttributeMapper() {
service.setClientAttribute(CLIENT_ATTRIBUTE, OzgCloudVorgangTestFactory.ID);
verify(clientAttributeMapper).toGrpc(CLIENT_ATTRIBUTE);
}
@Test
void shouldCallSetClientAttribute() {
service.setClientAttribute(CLIENT_ATTRIBUTE, OzgCloudVorgangTestFactory.ID);
verify(service).doSetClientAttribute(grpcClientAttribute, OzgCloudVorgangTestFactory.ID);
}
}
}
@Nested
class TestDoSetClientAttribute {
@Mock
private ClientAttributeServiceBlockingStub stubWithInterceptor;
@Mock
private GrpcSetClientAttributeRequest grpcRequest;
@BeforeEach
void init() {
doReturn(stubWithInterceptor).when(service).getAttributesServiceStub();
doReturn(grpcRequest).when(service).buildRequest(any(), any());
}
@Test
void shouldCallBuildRequest() {
service.doSetClientAttribute(grpcClientAttribute, OzgCloudVorgangTestFactory.ID);
verify(service).buildRequest(grpcClientAttribute, OzgCloudVorgangTestFactory.ID.toString());
}
@Test
void shouldCallGetServiceBlockingStub() {
service.doSetClientAttribute(grpcClientAttribute, OzgCloudVorgangTestFactory.ID);
verify(service).getAttributesServiceStub();
}
@Test
void shouldCallSet() {
service.doSetClientAttribute(grpcClientAttribute, OzgCloudVorgangTestFactory.ID);
verify(stubWithInterceptor).set(grpcRequest);
}
}
@Nested
class TestBuildRequest {
private static final String VORGANG_ID = OzgCloudVorgangTestFactory.ID.toString();
@Test
void shouldSetClientAttribute() {
var request = service.buildRequest(grpcClientAttribute, VORGANG_ID);
assertThat(request.getAttribute()).isSameAs(grpcClientAttribute);
}
@Test
void shouldSetVorgangId() {
var request = service.buildRequest(grpcClientAttribute, VORGANG_ID);
assertThat(request.getVorgangId()).isEqualTo(VORGANG_ID);
}
}
@Nested
class TestGetAttributesServiceStub {
@Mock
private ClientAttributeServiceBlockingStub stubWithInterceptor;
@Captor
private ArgumentCaptor<OzgCloudCallContextAttachingInterceptor> interceptorCaptor;
@Test
void shouldSetContextProvider() {
service.getAttributesServiceStub();
verify(serviceBlockingStub).withInterceptors(interceptorCaptor.capture());
assertThat(getContextProvider()).isSameAs(contextProvider);
}
@Test
void shouldReturnServiceBlockingStub() {
when(serviceBlockingStub.withInterceptors(any())).thenReturn(stubWithInterceptor);
var stub = service.getAttributesServiceStub();
assertThat(stub).isSameAs(stubWithInterceptor);
}
private OzgCloudCallContextProvider getContextProvider() {
return (OzgCloudCallContextProvider) ReflectionTestUtils.getField(interceptorCaptor.getValue(), "callContextProvider");
}
}
}
\ No newline at end of file
/*
* 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.client_attribute.grpc;
import static org.assertj.core.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.mapstruct.factory.Mappers;
import de.ozgcloud.apilib.client_attribute.GrpcClientAttributeTestFactory;
import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeTestFactory;
class OzgCloudClientAttributeMapperTest {
private OzgCloudClientAttributeMapper mapper = Mappers.getMapper(OzgCloudClientAttributeMapper.class);
@Test
void shouldMapBooleanAttribute() {
var result = mapper.toGrpc(OzgCloudClientAttributeTestFactory.createBoolean());
assertThat(result).usingRecursiveComparison().isEqualTo(GrpcClientAttributeTestFactory.createBoolean());
}
@Test
void shouldMapStringAttribute() {
var result = mapper.toGrpc(OzgCloudClientAttributeTestFactory.createString());
assertThat(result).usingRecursiveComparison().isEqualTo(GrpcClientAttributeTestFactory.createString());
}
@Test
void shouldMapLongAttribute() {
var result = mapper.toGrpc(OzgCloudClientAttributeTestFactory.createLong());
assertThat(result).usingRecursiveComparison().isEqualTo(GrpcClientAttributeTestFactory.createLong());
}
@Test
void shouldMapDoubleAttribute() {
var result = mapper.toGrpc(OzgCloudClientAttributeTestFactory.createDouble());
assertThat(result).usingRecursiveComparison().isEqualTo(GrpcClientAttributeTestFactory.createDouble());
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment