diff --git a/Jenkinsfile b/Jenkinsfile index 9364c4109f338181ff3cbda19f14e64a091fac51..31a0c17c2184f6c4ac08524671bf1db2b566ae06 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -42,22 +42,6 @@ pipeline { if( !(rootVersion == serverVersion && rootVersion == interfaceVersion && rootVersion == mailVersion)){ error("Versionen sind nicht identisch") } - - def bayernIdProxyParent = getPomVersion('nachrichten-bayernid-proxy/pom.xml') - def bayernIdProxyInterface = getPomVersion('nachrichten-bayernid-proxy/bayernid-proxy-interface/pom.xml') - - if(isReleaseBranch()){ - if ( !(bayernIdProxyParent ==~ RELEASE_REGEX) || !(bayernIdProxyInterface ==~ RELEASE_REGEX)) { - error("Keine Release Version für BayernIdProxy Branch ${env.BRANCH_NAME}.") - } - } else { - if ( !(bayernIdProxyParent ==~ SNAPSHOT_REGEX) || !(bayernIdProxyInterface ==~ SNAPSHOT_REGEX)) { - error("Keine Snapshot Version für BayernIdProxy Branch ${env.BRANCH_NAME}.") - } - } - if( !(bayernIdProxyParent == bayernIdProxyInterface)){ - error("Versionen BayernIdProxy sind nicht identisch") - } } } } @@ -105,20 +89,6 @@ pipeline { } } - stage('Build Docker image nachrichten-bayernid-proxy') { - steps { - script { - FAILED_STAGE=env.STAGE_NAME - } - - configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { - dir('nachrichten-bayernid-proxy/bayernid-proxy-impl') { - sh 'mvn --no-transfer-progress -s $MAVEN_SETTINGS spring-boot:build-image -DskipTests -Dmaven.wagon.http.retryHandler.count=3' - } - } - } - } - stage('Tag and Push Docker image vorgang-manager') { steps { script { @@ -138,25 +108,6 @@ pipeline { } } - stage('Tag and Push Docker image nachrichten-bayernid-proxy') { - steps { - script { - FAILED_STAGE=env.STAGE_NAME - IMAGE_TAG_BAYERN_ID_PROXY = generateImageTag('nachrichten-bayernid-proxy/pom.xml') - - tagAndPushDockerImage('bayernid-proxy', IMAGE_TAG_BAYERN_ID_PROXY) - - if (env.BRANCH_NAME == 'master') { - tagAndPushDockerImage('bayernid-proxy', 'snapshot-latest') - tagAndPushDockerImage('bayernid-proxy', 'e2e-test') - } - else if (env.BRANCH_NAME == 'release') { - tagAndPushDockerImage('bayernid-proxy', 'latest') - } - } - } - } - stage('Test, build and deploy Helm Chart vorgang-manager') { steps { script { @@ -175,26 +126,6 @@ pipeline { } } - stage('Test, build and deploy Helm Chart bayernid-proxy') { - steps { - script { - FAILED_STAGE=env.STAGE_NAME - HELM_CHART_VERSION_BAYERN_ID_PROXY = generateHelmChartVersion("nachrichten-bayernid-proxy/pom.xml") - - dir('nachrichten-bayernid-proxy') { - sh "./run_helm_test.sh" - } - - dir('nachrichten-bayernid-proxy/src/main/helm') { - - sh "helm package --version=${HELM_CHART_VERSION_BAYERN_ID_PROXY} ." - - deployHelmChart("bayernid-proxy", HELM_CHART_VERSION_BAYERN_ID_PROXY) - } - } - } - } - stage('Trigger Dev rollout') { when { branch 'master' @@ -206,7 +137,6 @@ pipeline { cloneGitopsRepo() setNewVorgangManagerGitopsVersion("dev") - setNewNachrichtenBayernIdProxyGitopsVersion("dev") pushDevGitopsRepo() } } @@ -223,7 +153,6 @@ pipeline { cloneGitopsRepo() setNewVorgangManagerGitopsVersion("test") - setNewNachrichtenBayernIdProxyGitopsVersion("test") pushTestGitopsRepo() } @@ -296,15 +225,6 @@ pipeline { } } - dir('nachrichten-bayernid-proxy') { - try { - withSonarQubeEnv('sonarqube-ozg-sh'){ - sh 'mvn -s $MAVEN_SETTINGS sonar:sonar' - } - } catch (Exception e) { - unstable("SonarQube BayernIdProxy failed") - } - } } } } @@ -414,18 +334,6 @@ Void setNewVorgangManagerGitopsVersion(String environment) { } } -Void setNewNachrichtenBayernIdProxyGitopsVersion(String environment) { - dir("gitops") { - def envFile = "${environment}/application/values/bayernid-proxy-values.yaml" - def envVersions = readYaml file: envFile - - envVersions.bayernid_proxy.image.tag = IMAGE_TAG_BAYERN_ID_PROXY - envVersions.bayernid_proxy.helm.version = HELM_CHART_VERSION_BAYERN_ID_PROXY - - writeYaml file: envFile, data: envVersions, overwrite: true - } -} - Void pushDevGitopsRepo() { pushNewGitopsVersion('dev') } @@ -443,7 +351,7 @@ Void pushNewGitopsVersion(String environment) { withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { sh "git add ${environment}/application/values/*-values.yaml" - sh "git commit -m 'jenkins rollout ${environment} vorgang-manager version ${IMAGE_TAG} bayern-id version ${IMAGE_TAG_BAYERN_ID_PROXY}'" + sh "git commit -m 'jenkins rollout ${environment} vorgang-manager version ${IMAGE_TAG}'" sh 'git push https://${USER}:${TOKEN}@git.ozg-sh.de/ozgcloud-devops/gitops.git' } } diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/pom.xml b/nachrichten-bayernid-proxy/bayernid-proxy-impl/pom.xml deleted file mode 100644 index 33ebf76b84b635fd7459233d3498a54dd2102f16..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/pom.xml +++ /dev/null @@ -1,228 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - 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. - ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>de.ozgcloud.nachrichten</groupId> - <artifactId>nachrichten-bayernid-proxy</artifactId> - <version>0.4.0-SNAPSHOT</version> - <relativePath>../</relativePath> - </parent> - - <artifactId>bayernid-proxy-impl</artifactId> - <name>OZG Cloud BayernID Proxy Implementation</name> - - <properties> - <jaxb-maven-plugin.version>4.0.0</jaxb-maven-plugin.version> - - <spring-boot.build-image.imageName>docker.ozg-sh.de/bayernid-proxy:build-latest</spring-boot.build-image.imageName> - </properties> - - <dependencies> - <dependency> - <groupId>de.ozgcloud.nachrichten</groupId> - <artifactId>bayernid-proxy-interface</artifactId> - <version>${project.version}</version> - </dependency> - - <!-- Spring --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-actuator</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-validation</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.ws</groupId> - <artifactId>spring-ws-core</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-oxm</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.ws</groupId> - <artifactId>spring-xml</artifactId> - </dependency> - - <!-- commons --> - <dependency> - <groupId>org.apache.httpcomponents.client5</groupId> - <artifactId>httpclient5</artifactId> - </dependency> - - <!-- grpc --> - <dependency> - <groupId>net.devh</groupId> - <artifactId>grpc-server-spring-boot-starter</artifactId> - </dependency> - <dependency> - <groupId>io.grpc</groupId> - <artifactId>grpc-inprocess</artifactId> - </dependency> - - <!-- aspectJ --> - <dependency> - <groupId>org.aspectj</groupId> - <artifactId>aspectjweaver</artifactId> - </dependency> - <dependency> - <groupId>org.aspectj</groupId> - <artifactId>aspectjrt</artifactId> - </dependency> - - <!-- Tools --> - <dependency> - <groupId>org.mapstruct</groupId> - <artifactId>mapstruct</artifactId> - </dependency> - <dependency> - <groupId>org.glassfish.jaxb</groupId> - <artifactId>jaxb-runtime</artifactId> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.dataformat</groupId> - <artifactId>jackson-dataformat-xml</artifactId> - </dependency> - - <!-- Dev --> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <optional>true</optional> - <scope>provided</scope> - </dependency> - - <!-- Test --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>org.junit.vintage</groupId> - <artifactId>junit-vintage-engine</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter-engine</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter-params</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.wiremock</groupId> - <artifactId>wiremock-standalone</artifactId> - <version>${wiremock.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>net.devh</groupId> - <artifactId>grpc-client-spring-boot-starter</artifactId> - <scope>test</scope> - </dependency> - - </dependencies> - - <build> - <finalName>${project.artifactId}</finalName> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-failsafe-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.jvnet.jaxb</groupId> - <artifactId>jaxb-maven-plugin</artifactId> - <version>${jaxb-maven-plugin.version}</version> - <configuration> - <schemas> - <schema> - <fileset> - <directory>${basedir}/src/main/resources/bayernid</directory> - <includes> - <include>*.wsdl</include> - </includes> - </fileset> - </schema> - <schema> - <fileset> - <directory>${basedir}/src/main/resources/bayernid</directory> - <includes> - <include>*.xsd</include> - </includes> - </fileset> - </schema> - </schemas> - <episode>false</episode> - </configuration> - <executions> - <execution> - <goals> - <goal>generate</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project> \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProperties.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProperties.java deleted file mode 100644 index 4fe6e1a75367636864088b1d13b506f7fb393b25..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProperties.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import jakarta.validation.constraints.NotBlank; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; -import org.springframework.validation.annotation.Validated; - -import lombok.Getter; -import lombok.Setter; - -@Getter -@Setter -@Validated -@Configuration -@ConfigurationProperties(prefix = "ozgcloud.bayernid") -public class BayernIdProperties { - - @NotBlank - private String server; - - private boolean useSsl = true; -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyApplication.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyApplication.java deleted file mode 100644 index 6b47fed8a9a59718b29fab5ac6006b03d81f7294..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyApplication.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import java.util.TimeZone; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.scheduling.annotation.EnableAsync; - -@SpringBootApplication -@EnableAsync(proxyTargetClass = true) -@EnableAspectJAutoProxy(proxyTargetClass = true) -public class BayernIdProxyApplication { - - public static void main(String[] args) { - TimeZone.setDefault(TimeZone.getTimeZone("UTC")); - SpringApplication.run(BayernIdProxyApplication.class, args); - } - -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyConfiguration.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyConfiguration.java deleted file mode 100644 index 1705b377cb69f6fea167d7c54dd681289bf0fec8..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyConfiguration.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; -import org.apache.hc.client5.http.impl.io.BasicHttpClientConnectionManager; -import org.apache.hc.client5.http.io.HttpClientConnectionManager; -import org.apache.hc.client5.http.socket.ConnectionSocketFactory; -import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory; -import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory; -import org.apache.hc.core5.http.config.RegistryBuilder; -import org.springframework.boot.ssl.SslBundles; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.oxm.jaxb.Jaxb2Marshaller; -import org.springframework.ws.transport.http.HttpComponents5MessageSender; - -import akdb.bsp.postkorb.komm.webservice.ObjectFactory; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.akdb.BayernIdRemoteService; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessageMapper; -import lombok.RequiredArgsConstructor; - -@Configuration -@RequiredArgsConstructor -class BayernIdProxyConfiguration { - - private final SslBundles sslBundles; - private final BayernIdProperties properties; - - @Bean - Jaxb2Marshaller createJaxb2Marshaller() { - var marshaller = new Jaxb2Marshaller(); - marshaller.setContextPaths("akdb.bsp.postkorb.komm.webservice", "de.akdb.egov.bsp.nachrichten"); - return marshaller; - } - - @Bean - BayernIdRemoteService soapHttpClient(BayernIdMessageMapper messageMapper, Jaxb2Marshaller marshaller) { - var bayernIdRemoteService = new BayernIdRemoteService(messageMapper, new ObjectFactory()); - bayernIdRemoteService.setMarshaller(marshaller); - bayernIdRemoteService.setUnmarshaller(marshaller); - bayernIdRemoteService.setDefaultUri(properties.getServer()); - bayernIdRemoteService.setMessageSender(createMessageSender()); - return bayernIdRemoteService; - } - - HttpComponents5MessageSender createMessageSender() { - var httpClient = HttpClientBuilder.create() - .setConnectionManager(createConnectionManager()) - .addRequestInterceptorFirst(new HttpComponents5MessageSender.RemoveSoapHeadersInterceptor()) - .build(); - return new HttpComponents5MessageSender(httpClient); - } - - private HttpClientConnectionManager createConnectionManager() { - var socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create().register("http", new PlainConnectionSocketFactory()); - if (properties.isUseSsl()) { - socketFactoryRegistry.register("https", createSslConnectionSocketFactory()); - } - return new BasicHttpClientConnectionManager(socketFactoryRegistry.build()); - } - - private SSLConnectionSocketFactory createSslConnectionSocketFactory() { - return new SSLConnectionSocketFactory(sslBundles.getBundle("bayern-id-ca").createSslContext()); - } - -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyGrpcService.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyGrpcService.java deleted file mode 100644 index b92528052e8b3685c7d9804dd24e1685b3db5560..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyGrpcService.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.BayernIdProxyServiceGrpc.BayernIdProxyServiceImplBase; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessageMapper; -import io.grpc.stub.StreamObserver; -import lombok.RequiredArgsConstructor; -import net.devh.boot.grpc.server.service.GrpcService; - -@GrpcService -@RequiredArgsConstructor -public class BayernIdProxyGrpcService extends BayernIdProxyServiceImplBase { - - private final BayernIdProxyService proxyService; - private final BayernIdMessageMapper messageMapper; - - @Override - public StreamObserver<GrpcSendBayernIdMessageRequest> sendMessageAsStream(StreamObserver<GrpcSendBayernIdMessageResponse> responseObserver) { - return new UploadStreamObserver(responseObserver, proxyService, messageMapper); - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyService.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyService.java deleted file mode 100644 index 1a760fd479ba85227a3a17f0473ad94abaf27109..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyService.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import org.springframework.stereotype.Service; - -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.akdb.BayernIdRemoteService; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessage; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdResponse; -import lombok.RequiredArgsConstructor; - -@Service -@RequiredArgsConstructor -public class BayernIdProxyService { - - private final BayernIdRemoteService bayernIdRemoteService; - - public BayernIdResponse sendPostfachNachricht(BayernIdMessage message) { - return bayernIdRemoteService.sendPostfachNachricht(message); - } - -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/DeleteOnCloseInputStream.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/DeleteOnCloseInputStream.java deleted file mode 100644 index d1655a9c7ddcc5627e7f30bcaec565c30a0431c0..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/DeleteOnCloseInputStream.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.nio.file.Files; - -public class DeleteOnCloseInputStream extends FileInputStream { - - private final File file; - - public DeleteOnCloseInputStream(File file) throws FileNotFoundException { - super(file); - this.file = file; - } - - @Override - public void close() throws IOException { - super.close(); - Files.deleteIfExists(file.toPath()); - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/UploadStreamObserver.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/UploadStreamObserver.java deleted file mode 100644 index e223ae4e59c7483418cc295d8c018902f4fa0fd1..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/UploadStreamObserver.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import static java.util.Objects.*; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.concurrent.atomic.AtomicReference; - -import com.google.protobuf.ByteString; - -import de.ozgcloud.common.errorhandling.TechnicalException; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.Attachment; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessage.BayernIdMessageBuilder; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessageMapper; -import io.grpc.stub.StreamObserver; -import lombok.RequiredArgsConstructor; -import lombok.extern.log4j.Log4j2; - -@Log4j2 -@RequiredArgsConstructor -public class UploadStreamObserver implements StreamObserver<GrpcSendBayernIdMessageRequest> { - - static final String ATTACHMENT_FILE_SUFFIX = ".ozg-cloud.tmp"; - - private final StreamObserver<GrpcSendBayernIdMessageResponse> responseObserver; - private final BayernIdProxyService proxyService; - private final BayernIdMessageMapper messageMapper; - - private final AtomicReference<BayernIdMessageBuilder> messageBuilder = new AtomicReference<>(); - private OutputStream attachmentWriter; - - @Override - public synchronized void onNext(GrpcSendBayernIdMessageRequest sendRequest) { - if (sendRequest.hasMessageMetadata()) { - readMessageMetadata(sendRequest.getMessageMetadata()); - return; - } - readAttachments(sendRequest.getAttachments()); - } - - void readMessageMetadata(GrpcBayernIdMessageMetadata sendRequest) { - messageBuilder.set(messageMapper.toBayernIdMessage(sendRequest)); - } - - void readAttachments(GrpcAttachments attachments) { - if (attachments.hasAttachmentMetadata()) { - addDataContainer(attachments.getAttachmentMetadata()); - return; - } - writeAttachment(attachments.getContent()); - } - - void addDataContainer(GrpcAttachmentMetadata attachmentMetadata) { - messageBuilder.get().attachment(buildAttachment(attachmentMetadata)); - } - - Attachment buildAttachment(GrpcAttachmentMetadata attachmentMetadata) { - var attachmentFile = createTemporallyFile(attachmentMetadata.getFileName()); - return Attachment.builder() - .name(attachmentMetadata.getFileName()) - .type(attachmentMetadata.getFileType()) - .content(attachmentFile) - .build(); - } - - InputStream createTemporallyFile(String fileName) { - try { - closeTemporallyWriter(); - var tempFilePath = createFile(fileName); - attachmentWriter = newOutputStream(tempFilePath); - return newInputStream(tempFilePath); - } catch (IOException e) { - throw new TechnicalException("Can not create temporary file for attachment " + fileName, e); - } - } - - Path createFile(String fileName) throws IOException { - var tmpFile = Files.createTempFile(fileName, ATTACHMENT_FILE_SUFFIX); - tmpFile.toFile().deleteOnExit(); - return tmpFile; - } - - OutputStream newOutputStream(Path filePath) throws IOException { - return Files.newOutputStream(filePath); - } - - InputStream newInputStream(Path filePath) throws IOException { - return new DeleteOnCloseInputStream(filePath.toFile()); - } - - void closeTemporallyWriter() { - try { - if (nonNull(attachmentWriter)) { - attachmentWriter.close(); - } - } catch (IOException e) { - throw new TechnicalException("Can not close attachment file", e); - } - } - - void writeAttachment(ByteString content) { - try { - attachmentWriter.write(content.toByteArray()); - attachmentWriter.flush(); - } catch (IOException e) { - throw new TechnicalException("Can not save attachment content", e); - } - } - - @Override - public void onError(Throwable t) { - closeTemporallyWriter(); - throw new TechnicalException("Error while sending postfach message", t); - } - - @Override - public void onCompleted() { - closeTemporallyWriter(); - try { - var bayernIdResponse = proxyService.sendPostfachNachricht(messageBuilder.get().build()); - responseObserver.onNext(messageMapper.fromBayernIdResponse(bayernIdResponse)); - responseObserver.onCompleted(); - } catch (Exception e) { - throw new TechnicalException("Error while sending postfach message", e); - } - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/akdb/BayernIdRemoteService.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/akdb/BayernIdRemoteService.java deleted file mode 100644 index 9446a6a57b9fa105e237b6542b2bfeb6cecab4b0..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/akdb/BayernIdRemoteService.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.akdb; - -import java.io.IOException; - -import jakarta.xml.bind.JAXBElement; - -import org.springframework.ws.client.core.support.WebServiceGatewaySupport; -import org.springframework.xml.transform.StringResult; -import org.springframework.xml.transform.StringSource; - -import akdb.bsp.postkorb.komm.webservice.ObjectFactory; -import akdb.bsp.postkorb.komm.webservice.SendBspNachrichtNative; -import akdb.bsp.postkorb.komm.webservice.SendBspNachrichtNativeOutput; -import de.akdb.egov.bsp.nachrichten.BspNachricht; -import de.akdb.egov.bsp.nachrichten.BspQuittung; -import de.ozgcloud.common.errorhandling.TechnicalException; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessage; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessageMapper; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdResponse; -import lombok.RequiredArgsConstructor; - -@RequiredArgsConstructor -public class BayernIdRemoteService extends WebServiceGatewaySupport { - - private final BayernIdMessageMapper messageMapper; - private final ObjectFactory objectFactory; - - public BayernIdResponse sendPostfachNachricht(BayernIdMessage message) { - var sendNachricht = createSendNachricht(message); - var sendBspNachrichtResponse = sendBspNachricht(sendNachricht); - var bspQuittung = createBspQuitung(sendBspNachrichtResponse); - return messageMapper.toBayernIdResponse(bspQuittung); - } - - SendBspNachrichtNative createSendNachricht(BayernIdMessage message) { - var bspNachricht = messageMapper.toBspNachricht(message); - var sendBspNachricht = new SendBspNachrichtNative(); - sendBspNachricht.setBspNachricht(buildBspNachrichtXml(bspNachricht)); - return sendBspNachricht; - } - - String buildBspNachrichtXml(BspNachricht message) { - try { - var result = new StringResult(); - getMarshaller().marshal(message, result); - return result.toString(); - } catch (IOException e) { - throw new TechnicalException("Error while marshalling BspNachricht", e); - } - } - - SendBspNachrichtNativeOutput sendBspNachricht(SendBspNachrichtNative request) { - return send(objectFactory.createSendBspNachrichtNative(request)).getValue(); - } - - @SuppressWarnings("unchecked") - JAXBElement<SendBspNachrichtNativeOutput> send(JAXBElement<SendBspNachrichtNative> jaxbSendBspNachrichtNative) { - return (JAXBElement<SendBspNachrichtNativeOutput>) getWebServiceTemplate().marshalSendAndReceive(jaxbSendBspNachrichtNative); - } - BspQuittung createBspQuitung(SendBspNachrichtNativeOutput bspNachrichtResponse) { - try { - return (BspQuittung) getUnmarshaller().unmarshal(new StringSource(bspNachrichtResponse.getBspQuittung())); - } catch (IOException e) { - throw new TechnicalException("Error while unmarshalling BspQuittung", e); - } - } - -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/errorhandling/ExceptionHandler.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/errorhandling/ExceptionHandler.java deleted file mode 100644 index fba0b8d8e0b7e1d5068e9f7a2bdf2d91519c0030..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/errorhandling/ExceptionHandler.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.errorhandling; - -import java.util.UUID; - -import de.ozgcloud.common.errorhandling.ExceptionUtil; -import de.ozgcloud.common.errorhandling.TechnicalException; -import de.ozgcloud.common.grpc.GrpcUtil; -import io.grpc.Metadata; -import io.grpc.Status; -import io.grpc.StatusException; -import lombok.extern.log4j.Log4j2; -import net.devh.boot.grpc.server.advice.GrpcAdvice; -import net.devh.boot.grpc.server.advice.GrpcExceptionHandler; - -@GrpcAdvice -@Log4j2 -public class ExceptionHandler { - - static final String KEY_EXCEPTION_ID = "EXCEPTION_ID"; - - @GrpcExceptionHandler - public StatusException handleTechnicalException(TechnicalException e) { - LOG.error("Technical exception occurred", e); - return createStatusException(buildInternalStatus(e), buildMetadata(e.getExceptionId())); - } - - @GrpcExceptionHandler - public StatusException handleRuntimeException(RuntimeException e) { - var exceptionId = createExceptionId(); - LOG.error(ExceptionUtil.formatMessageWithExceptionId("gRPC internal exception.",exceptionId), e); - return createStatusException(buildInternalStatus(e), buildMetadata(exceptionId)); - } - - Status buildInternalStatus(RuntimeException e) { - return Status.INTERNAL.withDescription(e.getMessage()).withCause(e.getCause()); - } - - String createExceptionId() { - return UUID.randomUUID().toString(); - } - - Metadata buildMetadata(String exceptionId) { - var metadata = new Metadata(); - metadata.put(GrpcUtil.keyOfString(KEY_EXCEPTION_ID), exceptionId); - return metadata; - } - - StatusException createStatusException(Status status, Metadata metadata) { - return new StatusException(status, metadata); - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/Absender.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/Absender.java deleted file mode 100644 index e5cbd91cffbcaab77b6f96e86d391476def7694f..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/Absender.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -import lombok.Builder; -import lombok.Getter; - -@Builder -@Getter -public class Absender { - - private String postkorbId; - private String name; - private String anschrift; - private String email; - private String telefon; - private String hyperlink; - private String dienst; - private String mandant; - private String gemeindeschluessel; -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/Attachment.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/Attachment.java deleted file mode 100644 index 4c144a4f25b95a12b32ba22f21bfa228ed1f6aef..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/Attachment.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -import java.io.InputStream; - -import lombok.Builder; -import lombok.Getter; - -@Builder -@Getter -public class Attachment { - - private String name; - private String type; - private InputStream content; - -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdMessage.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdMessage.java deleted file mode 100644 index 71328dde692f42a4eb197722c9a21b03d9c87b1b..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdMessage.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -import java.util.List; - -import lombok.Builder; -import lombok.Getter; -import lombok.Singular; - -@Builder -@Getter -public class BayernIdMessage { - - private String messageId; - private String createdAt; - private String vorgangId; - private Absender absender; - private Empfaenger empfaenger; - private String subject; - private String storkQaaLevel; - private String text; - @Singular - private List<Attachment> attachments; -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdMessageMapper.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdMessageMapper.java deleted file mode 100644 index 0e7a7488191a84c17593abbcb887dfc7d3293469..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdMessageMapper.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -import java.io.IOException; - -import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.NullValueCheckStrategy; -import org.mapstruct.NullValuePropertyMappingStrategy; - -import de.akdb.egov.bsp.nachrichten.AbsenderType; -import de.akdb.egov.bsp.nachrichten.BspNachricht; -import de.akdb.egov.bsp.nachrichten.BspQuittung; -import de.akdb.egov.bsp.nachrichten.DataContainerType; -import de.akdb.egov.bsp.nachrichten.SchluesseltabelleType; -import de.ozgcloud.common.errorhandling.TechnicalException; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcAbsender; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcBayernIdMessageMetadata; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcSendBayernIdMessageResponse; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessage.BayernIdMessageBuilder; - -@Mapper(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE, nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) -public interface BayernIdMessageMapper { - - String TABELLE_NUMMER_TEXT_ENCODING = "9004"; - String TABELLE_NUMMER_MIME_TYPE = "9005"; - String TABELLE_NUMMER_GEMEINDE_SCHLUESSEL = "36"; - String TEXT_ENCODING_PLAIN_TEXT = "text/plain"; - - @Mapping(target = "attachments", ignore = true) - BayernIdMessageBuilder toBayernIdMessage(GrpcBayernIdMessageMetadata grpcMessage); - - @Mapping(target = "gemeindeschluessel.tabelle", constant = TABELLE_NUMMER_GEMEINDE_SCHLUESSEL) - @Mapping(target = "gemeindeschluessel.schluessel", source = "gemeindeschluessel") - AbsenderType toAbsenderType(GrpcAbsender absender); - - @Mapping(target = "unknownFields", ignore = true) - @Mapping(target = "statusBytes", ignore = true) - @Mapping(target = "messageBytes", ignore = true) - @Mapping(target = "mergeUnknownFields", ignore = true) - @Mapping(target = "mergeFrom", ignore = true) - @Mapping(target = "clearOneof", ignore = true) - @Mapping(target = "clearField", ignore = true) - GrpcSendBayernIdMessageResponse fromBayernIdResponse(BayernIdResponse message); - - @Mapping(target = "nachrichtenKopf.identifikationNachricht.nachrichtenId", source = "messageId") - @Mapping(target = "nachrichtenKopf.identifikationNachricht.erstellungszeitpunkt", source = "createdAt") - @Mapping(target = "nachrichtenKopf.empfaenger.postkorbId", source = "empfaenger.postkorbId") - @Mapping(target = "nachrichtenKopf.empfaenger.name", source = "empfaenger.name") - @Mapping(target = "nachrichtenKopf.empfaenger.anschrift", source = "empfaenger.anschrift") - @Mapping(target = "nachrichtenKopf.absender", source = "absender") - @Mapping(target = "nachrichtenInhalt.betreff", source = "subject") - @Mapping(target = "nachrichtenInhalt.storkQaaLevel", source = "storkQaaLevel") - @Mapping(target = "nachrichtenInhalt.zuVorgang.vorgangsId", source = "vorgangId") - @Mapping(target = "nachrichtenInhalt.freiText.encoding.schluessel", constant = TEXT_ENCODING_PLAIN_TEXT) - @Mapping(target = "nachrichtenInhalt.freiText.encoding.tabelle", constant = TABELLE_NUMMER_TEXT_ENCODING) - @Mapping(target = "nachrichtenInhalt.freiText.text", source = "text") - @Mapping(target = "nachrichtenInhalt.dataContainer", source = "attachments") - BspNachricht toBspNachricht(BayernIdMessage message); - - @Mapping(target = "gemeindeschluessel.tabelle", constant = TABELLE_NUMMER_GEMEINDE_SCHLUESSEL) - @Mapping(target = "gemeindeschluessel.schluessel", source = "gemeindeschluessel") - AbsenderType toAbsenderType(Absender absender); - - default DataContainerType toDataContainerType(Attachment attachment) { - var dataContainer = new DataContainerType(); - dataContainer.setFileType(toSchluesseltabelleType(attachment)); - dataContainer.setFileName(attachment.getName()); - try { - var content = attachment.getContent(); - try { - dataContainer.setInhalt(content.readAllBytes()); - } finally { - content.close(); - } - } catch (IOException e) { - throw new TechnicalException("Error reading attachment content", e); - } - return dataContainer; - } - - default SchluesseltabelleType toSchluesseltabelleType(Attachment attachment) { - var schluesseltabelle = new SchluesseltabelleType(); - schluesseltabelle.setSchluessel(attachment.getType()); - schluesseltabelle.setTabelle(TABELLE_NUMMER_MIME_TYPE); - return schluesseltabelle; - } - - @Mapping(target = "status", source = "ergebnisStatus.schluessel") - @Mapping(target = "message", source = "ergaenzendeHinweise") - @Mapping(target = "success", source = "annahmeErfolgreich") - BayernIdResponse toBayernIdResponse(BspQuittung quittung); -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdResponse.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdResponse.java deleted file mode 100644 index f7b17f2da4ae66fbc4078d1e9be11b124164293b..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdResponse.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -import lombok.Builder; -import lombok.Getter; - -@Builder -@Getter -public class BayernIdResponse { - - private boolean success; - private String status; - private String message; - -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/Empfaenger.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/Empfaenger.java deleted file mode 100644 index 6cfd6fb4ef00f9ab4e2c315203c4f41b093b34fc..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/Empfaenger.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -import lombok.Builder; -import lombok.Getter; - -@Builder -@Getter -public class Empfaenger { - - private String postkorbId; - private String name; - private String anschrift; -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index 31f436d781244c879e37eb6d97662f3c5102e6b7..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1,14 +0,0 @@ -net.devh.boot.grpc.common.autoconfigure.GrpcCommonCodecAutoConfiguration -net.devh.boot.grpc.common.autoconfigure.GrpcCommonTraceAutoConfiguration -net.devh.boot.grpc.server.autoconfigure.GrpcAdviceAutoConfiguration -net.devh.boot.grpc.server.autoconfigure.GrpcHealthServiceAutoConfiguration -net.devh.boot.grpc.server.autoconfigure.GrpcMetadataConsulConfiguration -net.devh.boot.grpc.server.autoconfigure.GrpcMetadataEurekaConfiguration -net.devh.boot.grpc.server.autoconfigure.GrpcMetadataNacosConfiguration -net.devh.boot.grpc.server.autoconfigure.GrpcMetadataZookeeperConfiguration -net.devh.boot.grpc.server.autoconfigure.GrpcReflectionServiceAutoConfiguration -net.devh.boot.grpc.server.autoconfigure.GrpcServerAutoConfiguration -net.devh.boot.grpc.server.autoconfigure.GrpcServerFactoryAutoConfiguration -net.devh.boot.grpc.server.autoconfigure.GrpcServerMetricAutoConfiguration -net.devh.boot.grpc.server.autoconfigure.GrpcServerSecurityAutoConfiguration -net.devh.boot.grpc.server.autoconfigure.GrpcServerTraceAutoConfiguration diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/application-dev.yml b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/application-dev.yml deleted file mode 100644 index df2f1cca69b93f18902100a3a93997030beb2000..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/application-dev.yml +++ /dev/null @@ -1,5 +0,0 @@ -ozgcloud: - bayernid: - proxy: - server: "https://infra-pre-id.bayernportal.de/bspx-postkorb-okkomm-ws/bspservices/postkorbkomm" - postkorbId: "28721c6f-b78f-4d5c-a048-19fd2fc429d2" diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/application-local.yml b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/application-local.yml deleted file mode 100644 index f048bc1e34b576c9d95d558300db721823dc58f5..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/application-local.yml +++ /dev/null @@ -1,11 +0,0 @@ -logging: - config: classpath:log4j2-local.xml - -server: - port: 9097 -management: - server.port: 9098 - -grpc: - server: - port: 9099 diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/application.yml b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/application.yml deleted file mode 100644 index 69790c2b42e751213e739cf8ca6a87df6fd74068..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/application.yml +++ /dev/null @@ -1,29 +0,0 @@ -logging: - level: - ROOT: WARN - '[de.ozgcloud]': INFO - config: classpath:log4j2-local.xml - - -management: - server: - port: 8081 - health: - livenessState: - enabled: true - readinessState: - enabled: true - endpoint: - health: - group: - exploratory: - include: livenessState,readinessState,ping - show-details: always - probes: - enabled: true - prometheus: - enabled: true - endpoints: - web: - exposure: - include: "*" diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/bayernid/PostfachnachrichtenServiceBy.wsdl b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/bayernid/PostfachnachrichtenServiceBy.wsdl deleted file mode 100644 index a2df76060c0568ed74ed70e6cc71fdc6a9005c98..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/bayernid/PostfachnachrichtenServiceBy.wsdl +++ /dev/null @@ -1,108 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<definitions name="PostkorbKommService" - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:bsp="http://akdb.de/portal/gehaltsabrechnungen-bspnachricht" - xmlns:tns="urn:akdb:bsp:postkorb:komm:webservice" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="urn:akdb:bsp:postkorb:komm:webservice"> - <types> - <xs:schema - targetNamespace='urn:akdb:bsp:postkorb:komm:webservice' version='1.1' - xmlns:tns='urn:akdb:bsp:postkorb:komm:webservice' - xmlns:xs='http://www.w3.org/2001/XMLSchema'> - <xs:element name='sendBspNachricht' - type='tns:sendBspNachricht' /> - <xs:complexType name='sendBspNachricht'> - <xs:sequence> - <xs:element minOccurs='1' name='okKommBspNachrichtInput' - type='xs:base64Binary' /> - </xs:sequence> - </xs:complexType> - <xs:element name='sendBspNachrichtOutput' - type='tns:sendBspNachrichtOutput' /> - <xs:complexType name='sendBspNachrichtOutput'> - <xs:sequence> - <xs:element minOccurs='1' - name='okKommBspNachrichtOutput' type='xs:base64Binary' /> - </xs:sequence> - </xs:complexType> - <xs:element name='sendBspNachrichtNative' - type='tns:sendBspNachrichtNative' /> - <xs:complexType name='sendBspNachrichtNative'> - <xs:sequence> - <xs:element minOccurs='1' name='bspNachricht' - type='xs:string' /> - </xs:sequence> - </xs:complexType> - <xs:element name='sendBspNachrichtNativeOutput' - type='tns:sendBspNachrichtNativeOutput' /> - <xs:complexType name='sendBspNachrichtNativeOutput'> - <xs:sequence> - <xs:element minOccurs='1' name='bspQuittung' - type='xs:string' /> - </xs:sequence> - </xs:complexType> - </xs:schema> - </types> - <message name='PostkorbKommService_sendBspNachrichtInput'> - <part element='tns:sendBspNachricht' - name='okKommBspNachrichtInput'></part> - </message> - <message name='PostkorbKommService_sendBspNachrichtOutput'> - <part element='tns:sendBspNachrichtOutput' - name='sendBspNachrichtOutput'></part> - </message> - <message name='PostkorbKommService_sendBspNachrichtNativeInput'> - <part element='tns:sendBspNachrichtNative' - name='sendBspNachrichtNative'></part> - </message> - <message - name='PostkorbKommService_sendBspNachrichtNativeOutput'> - <part element='tns:sendBspNachrichtNativeOutput' - name='bspQuittung'></part> - </message> - <portType name='PostkorbKommPortType'> - <operation name='sendBspNachricht'> - <input message='tns:PostkorbKommService_sendBspNachrichtInput'></input> - <output - message='tns:PostkorbKommService_sendBspNachrichtOutput'></output> - </operation> - <operation name='sendBspNachrichtNative'> - <input - message='tns:PostkorbKommService_sendBspNachrichtNativeInput'></input> - <output - message='tns:PostkorbKommService_sendBspNachrichtNativeOutput'></output> - </operation> - </portType> - <binding name="PostkorbKommBinding" - type="tns:PostkorbKommPortType"> - <soap:binding style="document" - transport="http://schemas.xmlsoap.org/soap/http" /> - <operation name='sendBspNachricht'> - <soap:operation soapAction='' /> - <input> - <soap:body use='literal' /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name='sendBspNachrichtNative'> - <soap:operation soapAction='' /> - <input> - <soap:body use='literal' /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - </binding> - <service name="PostkorbKommService"> - <port name="PostkorbKommPort" binding="tns:PostkorbKommBinding"> - <!-- <soap:address location="${web-services-base- url}/bspservices/postkorbkomm" - /> --> - <soap:address location="http://localhost:8080/bspx-postkorb-okkomm-ws/bspservices/postkorbkomm" /> - </port> - </service> -</definitions> diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/bayernid/bspnachrichten-2.13.xsd b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/bayernid/bspnachrichten-2.13.xsd deleted file mode 100644 index 23b0e247d2bd9d2ab3f2206e4354d0c497844f28..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/bayernid/bspnachrichten-2.13.xsd +++ /dev/null @@ -1,343 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Service- und Portalplattform - AKDB München, Geschäftsfeld eGovernment - - Copyright (c) AKDB - ---> -<xsd:schema targetNamespace="http://www.akdb.de/egov/bsp/nachrichten" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:bsp="http://www.akdb.de/egov/bsp/nachrichten" - elementFormDefault="qualified"> - - <xsd:element name="BspNachricht"> - <xsd:annotation> - <xsd:appinfo> - <title>Nachricht für die Kommunikation zwischen Bürgerservice-Portal - und externen Fachverfahren</title> - </xsd:appinfo> - <xsd:documentation>Einheitliches Nachrichtenschema für die - Kommunikation zwischen Bürgerservice-Portal und externem Verfahren. - Nachrichten vom Bürgerservice-Portal an den Postkorb eines - Verfahrens - oder Nachrichten von den Verfahren an das Bürgerservice-Portal müssen - gemäß diesem Schema aufgebaut sein. - </xsd:documentation> - </xsd:annotation> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="NachrichtenKopf" type="bsp:NachrichtenKopfType"/> - <xsd:element name="NachrichtenInhalt" type="bsp:NachrichtenInhaltType"/> - </xsd:sequence> - <xsd:attribute name="version" use="required"> - <xsd:annotation> - <xsd:documentation>Dieses Attribut kennzeichnet die - Nachrichten-Version, z. B. "1.0", "1.1".</xsd:documentation> - </xsd:annotation> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> - <xsd:enumeration value="1.1"/> - <xsd:enumeration value="1.2"/> - <xsd:enumeration value="1.3"/> - <xsd:enumeration value="1.4"/> - <xsd:enumeration value="1.5"/> - </xsd:restriction> - </xsd:simpleType> - </xsd:attribute> - <xsd:attribute name="fassung" use="required" > - <xsd:annotation> - <xsd:documentation>Dieses Attribut kennzeichnet das Datum, an dem - die diesen Schemata im Status final produziert wurde. Format: - YYYY-MM-DD.</xsd:documentation> - </xsd:annotation> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> - <xsd:enumeration value="2017-03-15"/> - <xsd:enumeration value="2018-04-01"/> - <xsd:enumeration value="2018-11-01"/> - <xsd:enumeration value="2019-06-28"/> - <xsd:enumeration value="2020-03-15"/> - </xsd:restriction> - </xsd:simpleType> - </xsd:attribute> - <xsd:attribute name="produkt" type="xsd:string" use="optional"> - <xsd:annotation> - <xsd:documentation>In diesem Attribut ist der Name des Produktes - (der Software) einzutragen, mit dem diese Nachricht erstellt - worden ist. z.B. BSP, PWS</xsd:documentation> - </xsd:annotation> - </xsd:attribute> - <xsd:attribute name="produkthersteller" type="xsd:string" use="optional"/> - <xsd:attribute name="produktversion" type="xsd:string" use="optional"/> - </xsd:complexType> - </xsd:element> - - <xsd:element name="BspQuittung"> - <xsd:annotation> - <xsd:appinfo> - <title>Quittung über den Empfang einer BSO-Nachricht</title> - </xsd:appinfo> - <xsd:documentation>Zu einer empfangenen BSP-Nachricht wird eine - Quittung geliefert, die bestätigt, dass die Nachricht übernommen wurde - oder aufgrund eines technischen oder fachlichen Fehlers abgewiesen wurde. - </xsd:documentation> - </xsd:annotation> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="AnnahmeErfolgreich" type="xsd:boolean" minOccurs="1" maxOccurs="1"/> - <xsd:element name="ErgebnisStatus" type="bsp:SchluesseltabelleType" minOccurs="1" maxOccurs="1"> - <xsd:annotation> - <xsd:documentation>Schluesseltabelle 9006 (0 (erfolgreich angenommen), 99 (sonstiger technischer Fehler), ...)</xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="ErgaenzendeHinweise" type="xsd:string" minOccurs="0" maxOccurs="1"/> - </xsd:sequence> - <xsd:attribute name="version" use="required"> - <xsd:annotation> - <xsd:documentation>Dieses Attribut kennzeichnet die - Nachrichten-Version, z. B. "1.0", "1.1".</xsd:documentation> - </xsd:annotation> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> - <xsd:enumeration value="1.1"/> - <xsd:enumeration value="1.2"/> - <xsd:enumeration value="1.3"/> - <xsd:enumeration value="1.4"/> - <xsd:enumeration value="1.5"/> - </xsd:restriction> - </xsd:simpleType> - </xsd:attribute> - <xsd:attribute name="fassung" use="required"> - <xsd:annotation> - <xsd:documentation>Dieses Attribut kennzeichnet das Datum, an dem - die diesen Schemata im Status final produziert wurde. Format: - YYYY-MM-DD.</xsd:documentation> - </xsd:annotation> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> - <xsd:enumeration value="2017-03-15"/> - <xsd:enumeration value="2018-04-01"/> - <xsd:enumeration value="2018-11-01"/> - <xsd:enumeration value="2019-06-28"/> - <xsd:enumeration value="2020-03-15"/> - </xsd:restriction> - </xsd:simpleType> - </xsd:attribute> - <xsd:attribute name="produkt" type="xsd:string" use="optional"> - <xsd:annotation> - <xsd:documentation>In diesem Attribut ist der Name des Produktes - (der Software) einzutragen, mit dem diese Nachricht erstellt - worden ist. z.B. BSP, PWS</xsd:documentation> - </xsd:annotation> - </xsd:attribute> - <xsd:attribute name="produkthersteller" type="xsd:string" use="optional"/> - <xsd:attribute name="produktversion" type="xsd:string" use="optional"/> - </xsd:complexType> - </xsd:element> - - <xsd:complexType name="NachrichtenKopfType"> - <xsd:sequence> - <xsd:element name="Identifikation.Nachricht" type="bsp:Identifikation.NachrichtType" maxOccurs="1" minOccurs="1"/> - <xsd:element name="Anwenderkennung" type="xsd:string" minOccurs="0"> - <xsd:annotation> - <xsd:documentation> Die Anwenderkennung stellt Informationen über die absendende Person - zur Verfügung und dient der Protokollierung. - Anhand dieser Kennung kann die absendende Person identifiziert werden. - </xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="Absender" type="bsp:AbsenderType" maxOccurs="1" minOccurs="1"/> - <xsd:element name="Empfaenger" type="bsp:EmpfaengerType" maxOccurs="1" minOccurs="1"/> - <xsd:element name="AntwortAuf" type="xsd:string" maxOccurs="1" minOccurs="0"> - <xsd:annotation> - <xsd:documentation>Eine Nachricht kann mit einer exisiterenden - Nachricht in Beziehung gebracht werden als Antwortnachricht oder - weitergeleitete Nachricht. Der Bezug erfolgt hierbei über die - NachrichtenId. - </xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="WeiterleitungZu" type="xsd:string" minOccurs="0"/> - <xsd:element name="lesebestaetigungAntwortAdresse" type="xsd:string" minOccurs="0"/> - </xsd:sequence> - </xsd:complexType> - <xsd:complexType name="Identifikation.NachrichtType"> - <xsd:sequence> - <xsd:element name="Ereignis" type="bsp:SchluesseltabelleType"> - <xsd:annotation> - <xsd:documentation>Schluesseltabelle 9001, Schluessel: BspNachricht - </xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="Erstellungszeitpunkt" type="xsd:dateTime" maxOccurs="1" minOccurs="1"/> - <xsd:element name="NachrichtenId" type="xsd:string" maxOccurs="1" minOccurs="1"> - <xsd:annotation> - <xsd:documentation>eine beliebige, eindeutige ID, die durch den - erstellenden Client generiert wird. Zusammen mit - Erstellungszeitpunkt und Absender kann eine Nachricht bsp-global - eindeutig identifiziert werden. - </xsd:documentation> - </xsd:annotation> - </xsd:element> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="AbsenderType"> - <xsd:sequence> - <xsd:element name="PostkorbId" type="xsd:string" maxOccurs="1" minOccurs="0"/> - <xsd:element name="Verfahren" type="xsd:string" maxOccurs="1" minOccurs="0"/> - <xsd:element name="Dienst" type="bsp:NonEmptyString" maxOccurs="1" minOccurs="0"/> - <xsd:element name="Mandant" type="bsp:NonEmptyString" maxOccurs="1" minOccurs="0"/> - <xsd:element name="Gemeindeschluessel" type="bsp:SchluesseltabelleType" minOccurs="0"> - <xsd:annotation> - <xsd:documentation>Der amtliche Gemeindeschlüssel (AGS). - Als Tabellennummer ist hier die 36 (OSCI-XMeld-Schlüsseltabelle "Amtlicher Gemeindeschluessel") zu verwenden. - </xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="Name" type="xsd:string" maxOccurs="1" minOccurs="0"/> - <xsd:element name="Anschrift" type="xsd:string" maxOccurs="1" minOccurs="0"/> - <xsd:element name="Email" type="xsd:string" maxOccurs="1" minOccurs="0"/> - <xsd:element name="Telefon" type="xsd:string" maxOccurs="1" minOccurs="0"/> - <xsd:element name="Hyperlink" type="xsd:string" maxOccurs="1" minOccurs="0"/> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="EmpfaengerType"> - <xsd:sequence> - <xsd:element name="PostkorbId" type="xsd:string" maxOccurs="1" minOccurs="1"/> - <xsd:element name="Verfahren" type="xsd:string" maxOccurs="1" minOccurs="0"/> - <xsd:element name="Dienst" type="xsd:string" maxOccurs="1" minOccurs="0"/> - <xsd:element name="Mandant" type="xsd:string" maxOccurs="1" minOccurs="0"/> - <xsd:element name="Gemeindeschluessel" type="bsp:SchluesseltabelleType" minOccurs="0"> - <xsd:annotation> - <xsd:documentation>Der amtliche Gemeindeschlüssel (AGS). - Als Tabellennummer ist hier die 36 (OSCI-XMeld-Schlüsseltabelle "Amtlicher Gemeindeschluessel") zu verwenden. - </xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="Name" type="xsd:string" maxOccurs="1" minOccurs="0"/> - <xsd:element name="Anschrift" type="xsd:string" maxOccurs="1" minOccurs="0"/> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="NachrichtenInhaltType"> - <xsd:sequence> - <xsd:element name="Betreff" type="bsp:NonEmptyString" maxOccurs="1" minOccurs="1"/> - <xsd:element name="Kategorie" type="bsp:SchluesseltabelleType" minOccurs="0"> - <xsd:annotation> - <xsd:documentation>Schluesseltabelle 9002 (KAT_STATUS, KAT_INFOBSP, ...) - </xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:choice minOccurs="0"> - <xsd:element name="StorkQaaLevel" type="bsp:StorkQaaLevel"/> - <xsd:element name="NpaGescheutzt" type="xsd:boolean" > - <!-- deprecated, wird durch StorkQaaLevel="STORK-QAA-Level-1" ersetzt --> - <xsd:annotation> - <xsd:documentation> - Diese Nachricht kann im BüsP-Postkorb nur nach - vorheriger Anmeldung mit dem nPA gelesen werden. - </xsd:documentation> - </xsd:annotation> - </xsd:element> - </xsd:choice> - <xsd:element name="ZuVorgang" type="bsp:ZuVorgangType" minOccurs="0"/> - <xsd:element name="FreiText" type="bsp:FreiTextType"/> - <xsd:element name="DataContainer" type="bsp:DataContainerType" minOccurs="0" maxOccurs="unbounded"/> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="ZuVorgangType"> - <xsd:annotation> - <xsd:documentation>VorgangsName oder VorgangsId müssen angegeben - werden. Es können auch beide angegeben werden.</xsd:documentation> - </xsd:annotation> - <xsd:sequence minOccurs="0"> - <xsd:element name="VorgangsName" type="xsd:string"/> - <xsd:element name="VorgangsId" type="xsd:string"/> - <xsd:element name="VorgangStatus" type="bsp:SchluesseltabelleType"> - <xsd:annotation> - <xsd:documentation>Schluesseltabelle 9003 (ST_ERHALTEN, ST_GELESEN,...) - </xsd:documentation> - </xsd:annotation> - </xsd:element> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="FreiTextType"> - <xsd:sequence> - <xsd:element name="Encoding" type="bsp:SchluesseltabelleType" maxOccurs="1" minOccurs="1"> - <xsd:annotation> - <xsd:documentation>Schluesseltabelle 9004 (text/plain, text/html, ...) - </xsd:documentation> - </xsd:annotation> - </xsd:element> - <xsd:element name="Text" type="bsp:NonEmptyString" maxOccurs="1" minOccurs="1"> - <xsd:annotation> - <xsd:documentation> - Wenn als Encoding text/plain festgelegt ist, so wird die Zeichensequenz "\n" als ein Zeilenvorschub interpretiert. - Das Backslash-Zeichen (\) wird mit einem weiteren Backslash-Zeichen entwertet. - </xsd:documentation> - </xsd:annotation> - </xsd:element> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="DataContainerType"> - <xsd:sequence minOccurs="0"> - <xsd:element name="Inhalt" type="xsd:base64Binary" maxOccurs="1" minOccurs="1"/> - <xsd:element name="FileName" maxOccurs="1" minOccurs="0"> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> - <xsd:maxLength value="255"/> - </xsd:restriction> - </xsd:simpleType> - </xsd:element> - <xsd:element name="FileType" type="bsp:SchluesseltabelleType" maxOccurs="1" minOccurs="1"> - <xsd:annotation> - <xsd:documentation>Schluesseltabelle 9005 (application/pdf, text/html, ...) - </xsd:documentation> - </xsd:annotation> - </xsd:element> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="SchluesseltabelleType"> - <xsd:annotation> - <xsd:documentation>Dieser Datentyp wird für Schlüsselwerte benötigt. - Mit dem Datentyp SchluesseltabelleType übermittelt man den Schlüssel - und die Nummer der Tabelle, in der das Schlüssel-Wert Paar definiert - worden ist. - </xsd:documentation> - </xsd:annotation> - <xsd:sequence> - <xsd:element name="Tabelle" type="xsd:string"/> - <xsd:element name="Schluessel" type="xsd:string"/> - </xsd:sequence> - </xsd:complexType> - - <xsd:simpleType name="StorkQaaLevel"> - <xsd:restriction base="xsd:string"> - <!-- since version 1.2 - deprecated --> - <xsd:enumeration value="LEVEL_1"/> - <xsd:enumeration value="LEVEL_2"/> - <xsd:enumeration value="LEVEL_3"/> - <xsd:enumeration value="LEVEL_4"/> - <!-- since version 1.3 --> - <xsd:enumeration value="STORK-QAA-Level-1"/> - <xsd:enumeration value="STORK-QAA-Level-2"/> - <xsd:enumeration value="STORK-QAA-Level-3"/> - <xsd:enumeration value="STORK-QAA-Level-4"/> - </xsd:restriction> - </xsd:simpleType> - <xsd:simpleType name="NonEmptyString"> - <xsd:restriction base="xsd:string"> - <xsd:minLength value="1"/> - </xsd:restriction> - </xsd:simpleType> -</xsd:schema> - - diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/log4j2-local.xml b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/log4j2-local.xml deleted file mode 100644 index 5d7001e1f9186d197a2d301d3910c9d73ed05d15..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/main/resources/log4j2-local.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<configuration> - <Appenders> - <Console name="CONSOLE" target="SYSTEM_OUT"> - <PatternLayout pattern="[%-5level] %c{1.} %msg%n"/> - </Console> - </Appenders> - - <Loggers> - <Root level="WARN"> - <appender-ref ref="CONSOLE" /> - </Root> - </Loggers> -</configuration> \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyGrpcServiceITCase.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyGrpcServiceITCase.java deleted file mode 100644 index 8f9468c817590b7f34f0c83318084569ae09eaf6..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyGrpcServiceITCase.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import static org.assertj.core.api.Assertions.*; - -import java.io.InputStream; -import java.util.Set; -import java.util.concurrent.ExecutionException; - -import org.apache.commons.lang3.tuple.Pair; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.ImportAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.io.Resource; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; - -import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo; -import com.github.tomakehurst.wiremock.junit5.WireMockTest; - -import de.ozgcloud.common.test.ITCase; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.akdb.BayernIdRemoteService; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.mock.GrpcBayernIdProxyTestClient; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.mock.MockBayernIdInitializer; -import io.grpc.StatusRuntimeException; -import lombok.SneakyThrows; -import net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration; -import net.devh.boot.grpc.client.autoconfigure.GrpcClientHealthAutoConfiguration; -import net.devh.boot.grpc.client.autoconfigure.GrpcClientMetricAutoConfiguration; -import net.devh.boot.grpc.client.autoconfigure.GrpcClientSecurityAutoConfiguration; -import net.devh.boot.grpc.client.autoconfigure.GrpcClientTraceAutoConfiguration; -import net.devh.boot.grpc.client.autoconfigure.GrpcDiscoveryClientAutoConfiguration; -import net.devh.boot.grpc.client.inject.GrpcClient; - -@SpringBootTest(classes = BayernIdProxyApplication.class, properties = { - "grpc.server.inProcessName=test", - "grpc.client.inProcess.address=in-process:test", - "ozgcloud.bayernid.server: http://bayern-id", - "ozgcloud.bayernid.useSsl: false" -}) -@SpringJUnitConfig(classes = BayernIdProxyGrpcServiceITCase.TestConfig.class) -@DirtiesContext -@WireMockTest -@ITCase -class BayernIdProxyGrpcServiceITCase { - - @Autowired - private BayernIdProxyGrpcService service; - @Autowired - private BayernIdRemoteService bayernIdRemoteService; - - @GrpcClient("inProcess") - private BayernIdProxyServiceGrpc.BayernIdProxyServiceStub serviceStub; - - private MockBayernIdInitializer bayernIdInitializer; - - @Value("classpath:test.pdf") - private Resource pdfResource; - @Value("classpath:test.txt") - private Resource txtResource; - - private String pdfName = "test.pdf"; - private String txtName = "test.txt"; - - private GrpcBayernIdProxyTestClient grpcTestClient; - - @BeforeEach - void setup(WireMockRuntimeInfo wmRuntimeInfo) { - bayernIdRemoteService.setDefaultUri("http://localhost:" + wmRuntimeInfo.getHttpPort()); - bayernIdInitializer = new MockBayernIdInitializer(wmRuntimeInfo); - grpcTestClient = new GrpcBayernIdProxyTestClient(serviceStub); - } - - @Test - @SneakyThrows - void shouldSendMessage() { - bayernIdInitializer.createResponseOk(); - - var bayernIdResponse = grpcTestClient.sendMessage(GrpcBayernIdMessageMetadataTestFactory.create(), createAttachmentIterator()); - - assertThat(bayernIdResponse.isSuccess()).isTrue(); - assertThat(bayernIdResponse.getStatus()).isEqualTo("0"); - } - - @SneakyThrows - @Test - void shouldReceiveErrorResponse() { - bayernIdInitializer.createResponseError(); - - var bayernIdResponse = grpcTestClient.sendMessage(GrpcBayernIdMessageMetadataTestFactory.create(), createAttachmentIterator()); - - assertThat(bayernIdResponse.isSuccess()).isFalse(); - assertThat(bayernIdResponse.getStatus()).isEqualTo("31"); - assertThat(bayernIdResponse.getMessage()).isEqualTo("Unzulässiger Nachrichteninhalt"); - } - - @Test - void shouldPassException() { - bayernIdInitializer.createResponseWithException(); - - try { - grpcTestClient.sendMessage(GrpcBayernIdMessageMetadataTestFactory.create(), createAttachmentIterator()); - } catch (ExecutionException e) { - assertException(e.getMessage(), e.getCause()); - } - } - - @Test - void shouldPass500Response() { - bayernIdInitializer.create500Response(); - - try { - grpcTestClient.sendMessage(GrpcBayernIdMessageMetadataTestFactory.create(), createAttachmentIterator()); - } catch (ExecutionException e) { - assertException(e.getMessage(), e.getCause()); - } - } - - private void assertException(String exceptionMessage, Throwable cause) { - assertThat(cause).isInstanceOf(StatusRuntimeException.class); - assertThat(exceptionMessage).contains("(ExceptionId:"); - } - - - @SneakyThrows - Set<Pair<GrpcAttachmentMetadata, InputStream>> createAttachmentIterator() { - return Set.of( - Pair.of(GrpcAttachmentMetadata.newBuilder().setFileName(txtName).setFileType("text/plain").build(), txtResource.getInputStream()), - Pair.of(GrpcAttachmentMetadata.newBuilder().setFileName(pdfName).setFileType("application/pdf").build(), pdfResource.getInputStream()) - ); - } - - @Configuration - @ImportAutoConfiguration({ - GrpcClientAutoConfiguration.class, - GrpcClientHealthAutoConfiguration.class, - GrpcClientMetricAutoConfiguration.class, - GrpcClientSecurityAutoConfiguration.class, - GrpcClientTraceAutoConfiguration.class, - GrpcDiscoveryClientAutoConfiguration.class - }) - static class TestConfig { - } -} \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyServiceTest.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyServiceTest.java deleted file mode 100644 index 2bda292babf25b186a903b7d261ba22f00c241c8..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdProxyServiceTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import static org.assertj.core.api.Assertions.*; -import static org.mockito.Mockito.*; - -import org.junit.jupiter.api.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; - -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.akdb.BayernIdRemoteService; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessage; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdResponse; - -class BayernIdProxyServiceTest { - - @InjectMocks - private BayernIdProxyService service; - - @Mock - private BayernIdRemoteService remoteService; - @Mock - private BayernIdMessage message; - @Mock - private BayernIdResponse bayernIdResponse; - - @Test - void shouldCallRemoteService() { - sendMessage(); - - verify(remoteService).sendPostfachNachricht(message); - } - - @Test - void shouldReturnBayernIdResponse() { - when(remoteService.sendPostfachNachricht(any())).thenReturn(bayernIdResponse); - - var result = sendMessage(); - - assertThat(result).isEqualTo(bayernIdResponse); - } - - private BayernIdResponse sendMessage() { - return service.sendPostfachNachricht(message); - } -} \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdResponseTestFactory.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdResponseTestFactory.java deleted file mode 100644 index 09b4146c945d211c8001de8b6570ccbae19c07f0..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/BayernIdResponseTestFactory.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdResponse; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdResponse.BayernIdResponseBuilder; - -public class BayernIdResponseTestFactory { - - public static final String STATUS = "OK"; - public static final String MESSAGE = "Message sent successfully"; - - public static BayernIdResponse create() { - return createBuilder().build(); - } - - public static BayernIdResponseBuilder createBuilder() { - return BayernIdResponse.builder() - .success(true) - .status(STATUS) - .message(MESSAGE); - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/GrpcAbsenderTestFactory.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/GrpcAbsenderTestFactory.java deleted file mode 100644 index a955fd2dea9219c92f62c327c82c4278f734ddb7..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/GrpcAbsenderTestFactory.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -public class GrpcAbsenderTestFactory { - - public static final String NAME = "Musterstadt Stadtverwaltung"; - public static final String ANSCHRIFT = "Musterstraße 1"; - public static final String EMAIL = "example@mail.loc"; - public static final String TELEFON = "0456123456789"; - public static final String HYPERLINK = "http://some.link"; - public static final String MANDANT = "Musterstadt"; - public static final String DIENST = "Stadtverwaltung"; - public static final String GEMEINDE_SCHLUESSEL = "123456789"; - - public static GrpcAbsender create() { - return createBuilder().build(); - } - - public static GrpcAbsender.Builder createBuilder() { - return GrpcAbsender.newBuilder() - .setName(NAME) - .setAnschrift(ANSCHRIFT) - .setEmail(EMAIL) - .setTelefon(TELEFON) - .setHyperlink(HYPERLINK) - .setMandant(MANDANT) - .setDienst(DIENST) - .setGemeindeschluessel(GEMEINDE_SCHLUESSEL); - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/GrpcAttachmentMetadataTestFactory.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/GrpcAttachmentMetadataTestFactory.java deleted file mode 100644 index 6972e7a9c35f9c887e32565a392e1d483282d1ba..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/GrpcAttachmentMetadataTestFactory.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -public class GrpcAttachmentMetadataTestFactory { - - public static final String FILE_TYPE = "plain/text"; - public static final String FILE_NAME = "test.txt"; - - public static GrpcAttachmentMetadata create() { - return createBuilder().build(); - } - - public static GrpcAttachmentMetadata.Builder createBuilder() { - return GrpcAttachmentMetadata.newBuilder() - .setFileType(FILE_TYPE) - .setFileName(FILE_NAME); - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/GrpcBayernIdMessageMetadataTestFactory.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/GrpcBayernIdMessageMetadataTestFactory.java deleted file mode 100644 index 854a5c1a22be51055d84ccb07f068822d358e405..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/GrpcBayernIdMessageMetadataTestFactory.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import java.time.ZonedDateTime; -import java.util.GregorianCalendar; -import java.util.UUID; - -import javax.xml.datatype.DatatypeFactory; - -import lombok.SneakyThrows; - -public class GrpcBayernIdMessageMetadataTestFactory { - - public static final String MESSAGE_ID = "messageId"; - public static final ZonedDateTime CREATED_AT = ZonedDateTime.now(); - public static final String CREATED_AT_STRING = convertZoneDDateTime(CREATED_AT); - public static final String STORK_QAA_LEVEL = "LEVEL_1"; - public static final String SUBJECT = "subject"; - public static final String VORGANG_ID = UUID.randomUUID().toString(); - public static final String MESSAGE_TEXT = "some completely random text"; - - public static GrpcBayernIdMessageMetadata create() { - return createBuilder().build(); - } - - public static GrpcBayernIdMessageMetadata.Builder createBuilder() { - return GrpcBayernIdMessageMetadata.newBuilder() - .setMessageId(MESSAGE_ID) - .setCreatedAt(convertZoneDDateTime(CREATED_AT)) - .setAbsender(GrpcAbsenderTestFactory.create()) - .setEmpfaenger(GrpcEmpfaengerTestFactory.create()) - .setSubject(SUBJECT) - .setStorkQaaLevel(STORK_QAA_LEVEL) - .setVorgangId(VORGANG_ID) - .setText(MESSAGE_TEXT); - } - - @SneakyThrows - public static String convertZoneDDateTime(ZonedDateTime dateTime) { - return DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar.from(dateTime)).toString(); - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/GrpcEmpfaengerTestFactory.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/GrpcEmpfaengerTestFactory.java deleted file mode 100644 index 5a0df823236427815e28e4851d6f428dc25cd8bf..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/GrpcEmpfaengerTestFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -public class GrpcEmpfaengerTestFactory { - - public static final String POSTFACH_ID = "postfach-id-1"; - public static final String NAME = "Max Empfaenger"; - public static final String ANSCHRIFT = "anschrift"; - - public static GrpcEmpfaenger create() { - return createBuilder().build(); - } - - public static GrpcEmpfaenger.Builder createBuilder() { - return GrpcEmpfaenger.newBuilder() - .setPostkorbId(POSTFACH_ID) - .setName(NAME) - .setAnschrift(ANSCHRIFT); - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/UploadStreamObserverTest.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/UploadStreamObserverTest.java deleted file mode 100644 index d6efd88993fe8d530db3edaeefa7f26ca8c28f3f..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/UploadStreamObserverTest.java +++ /dev/null @@ -1,404 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import static org.assertj.core.api.Assertions.*; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.file.Path; -import java.util.concurrent.atomic.AtomicReference; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Spy; -import org.mockito.junit.jupiter.MockitoExtension; -import org.springframework.test.util.ReflectionTestUtils; - -import com.google.protobuf.ByteString; - -import de.ozgcloud.common.errorhandling.TechnicalException; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.Attachment; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessage.BayernIdMessageBuilder; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessageMapper; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessageTestFactory; -import io.grpc.stub.StreamObserver; -import lombok.SneakyThrows; - -class UploadStreamObserverTest { - - @Spy - @InjectMocks - private UploadStreamObserver uploadStreamObserver; - - @Mock - private StreamObserver<GrpcSendBayernIdMessageResponse> responseObserver; - @Mock - private BayernIdProxyService proxyService; - @Mock - private BayernIdMessageMapper messageMapper; - @Mock - private BayernIdMessageBuilder bayernIdMessageBuilder; - @Mock - private AtomicReference<BayernIdMessageBuilder> messageBuilderAtomicReference; - - @Nested - class TestOnNext { - - @Test - void shouldCallReadMetadata() { - var messageMetadata = GrpcBayernIdMessageMetadataTestFactory.create(); - var sendRequest = GrpcSendBayernIdMessageRequest.newBuilder().setMessageMetadata(messageMetadata).build(); - - uploadStreamObserver.onNext(sendRequest); - - verify(uploadStreamObserver).readMessageMetadata(messageMetadata); - verify(uploadStreamObserver, never()).readAttachments(any()); - } - - @Test - void shouldCallReadAttachment() { - var attachments = GrpcAttachments.newBuilder().setAttachmentMetadata(GrpcAttachmentMetadataTestFactory.create()).build(); - var sendRequest = GrpcSendBayernIdMessageRequest.newBuilder().setAttachments(attachments).build(); - doNothing().when(uploadStreamObserver).readAttachments(any()); - - uploadStreamObserver.onNext(sendRequest); - - verify(uploadStreamObserver).readAttachments(attachments); - verify(uploadStreamObserver, never()).readMessageMetadata(any()); - } - } - - @Nested - class TestReadMessageMetadata { - - private GrpcBayernIdMessageMetadata messageMetadata = GrpcBayernIdMessageMetadataTestFactory.create(); - - @BeforeEach - void setup() { - ReflectionTestUtils.setField(uploadStreamObserver, "messageBuilder", messageBuilderAtomicReference); - } - - @Test - void shouldCallMessageMapper() { - uploadStreamObserver.readMessageMetadata(messageMetadata); - - verify(messageMapper).toBayernIdMessage(messageMetadata); - } - - @Test - void shouldSetMessageBuilder() { - when(messageMapper.toBayernIdMessage(any())).thenReturn(bayernIdMessageBuilder); - - uploadStreamObserver.readMessageMetadata(messageMetadata); - - verify(messageBuilderAtomicReference).set(bayernIdMessageBuilder); - } - - } - - @Nested - class TestReadAttachments { - - @Test - void shouldCallAddContainer() { - var attachmentMetadata = GrpcAttachmentMetadataTestFactory.create(); - doNothing().when(uploadStreamObserver).addDataContainer(any()); - - uploadStreamObserver.readAttachments(GrpcAttachments.newBuilder().setAttachmentMetadata(attachmentMetadata).build()); - - verify(uploadStreamObserver).addDataContainer(attachmentMetadata); - verify(uploadStreamObserver, never()).writeAttachment(any()); - } - - @Test - void shouldCallWriteAttachment() { - var content = ByteString.copyFromUtf8("attachment"); - var attachment = GrpcAttachments.newBuilder().setContent(content).build(); - doNothing().when(uploadStreamObserver).writeAttachment(any()); - - uploadStreamObserver.readAttachments(attachment); - - verify(uploadStreamObserver).writeAttachment(content); - verify(uploadStreamObserver, never()).addDataContainer(any()); - } - - @Nested - class TestAddDataContainer { - - private GrpcAttachmentMetadata grpcAttachmentMetadata = GrpcAttachmentMetadataTestFactory.create(); - - @Mock - private Attachment attachment; - - @Mock - private AtomicReference<BayernIdMessageBuilder> atomicMessageBuilder; - - @BeforeEach - void setup() { - when(atomicMessageBuilder.get()).thenReturn(bayernIdMessageBuilder); - ReflectionTestUtils.setField(uploadStreamObserver, "messageBuilder", atomicMessageBuilder); - } - - @Test - void shouldCallBuildAttachment() { - uploadStreamObserver.addDataContainer(grpcAttachmentMetadata); - - verify(uploadStreamObserver).buildAttachment(grpcAttachmentMetadata); - } - - @Test - void shouldAddAttachment() { - doReturn(attachment).when(uploadStreamObserver).buildAttachment(any()); - - uploadStreamObserver.addDataContainer(grpcAttachmentMetadata); - - verify(bayernIdMessageBuilder).attachment(attachment); - } - } - - @Nested - class TestBuildAttachment { - - private GrpcAttachmentMetadata grpcAttachmentMetadata = GrpcAttachmentMetadataTestFactory.create(); - - @Mock - private InputStream tmpFileInputStream; - - @BeforeEach - void setup() { - doReturn(tmpFileInputStream).when(uploadStreamObserver).createTemporallyFile(any()); - } - - @Test - void shouldCallCreateTemporallyFile() { - uploadStreamObserver.buildAttachment(grpcAttachmentMetadata); - - verify(uploadStreamObserver).createTemporallyFile(GrpcAttachmentMetadataTestFactory.FILE_NAME); - } - - @Test - void shouldSetTemporallyFile() { - var result = uploadStreamObserver.buildAttachment(grpcAttachmentMetadata); - - assertThat(result.getContent()).isEqualTo(tmpFileInputStream); - } - - @Test - void shouldSetAttachmentName() { - var result = uploadStreamObserver.buildAttachment(grpcAttachmentMetadata); - - assertThat(result.getName()).isEqualTo(GrpcAttachmentMetadataTestFactory.FILE_NAME); - } - - @Test - void shouldSetAttachmentType() { - var result = uploadStreamObserver.buildAttachment(grpcAttachmentMetadata); - - assertThat(result.getType()).isEqualTo(GrpcAttachmentMetadataTestFactory.FILE_TYPE); - } - } - - @Nested - class TestCreateTemporallyFile { - - @Mock - private OutputStream attachmentWriter; - @Mock - private InputStream tmpFileInputStream; - - private Path tempFilePath = Path.of("tempFile"); - - @Test - void shouldCallCloseTemporallyFile() { - - uploadStreamObserver.createTemporallyFile("test.txt"); - - verify(uploadStreamObserver).closeTemporallyWriter(); - } - - @SneakyThrows - @Test - void shouldCallCreateFile() { - uploadStreamObserver.createTemporallyFile(GrpcAttachmentMetadataTestFactory.FILE_NAME); - - verify(uploadStreamObserver).createFile(GrpcAttachmentMetadataTestFactory.FILE_NAME); - } - - @SneakyThrows - @Test - void shouldCallNewOutputStream() { - doReturn(tempFilePath).when(uploadStreamObserver).createFile(any()); - - uploadStreamObserver.createTemporallyFile(GrpcAttachmentMetadataTestFactory.FILE_NAME); - - verify(uploadStreamObserver).newOutputStream(tempFilePath); - } - - @SneakyThrows - @Test - void shouldInitializeOutputWriter() { - doReturn(attachmentWriter).when(uploadStreamObserver).newOutputStream(any()); - - uploadStreamObserver.createTemporallyFile(GrpcAttachmentMetadataTestFactory.FILE_NAME); - - assertThat(getAttachmentWriter()).isEqualTo(attachmentWriter); - } - - @SneakyThrows - @Test - void shouldCallNewInputStream() { - doReturn(tempFilePath).when(uploadStreamObserver).createFile(any()); - - uploadStreamObserver.createTemporallyFile(GrpcAttachmentMetadataTestFactory.FILE_NAME); - - verify(uploadStreamObserver).newInputStream(tempFilePath); - } - - @SneakyThrows - @Test - void shouldReturnInputStream() { - doReturn(tmpFileInputStream).when(uploadStreamObserver).newInputStream(any()); - - var result = uploadStreamObserver.createTemporallyFile(GrpcAttachmentMetadataTestFactory.FILE_NAME); - - assertThat(result).isEqualTo(tmpFileInputStream); - } - - @SneakyThrows - @Test - void shouldThrowException() { - doThrow(new IOException()).when(uploadStreamObserver).createFile(any()); - - assertThrows(TechnicalException.class, () -> uploadStreamObserver.createTemporallyFile(GrpcAttachmentMetadataTestFactory.FILE_NAME)); - } - - private OutputStream getAttachmentWriter() { - return (OutputStream) ReflectionTestUtils.getField(uploadStreamObserver, "attachmentWriter"); - } - } - } - - @Nested - class TestOnError { - - @Test - void shouldCallCloseTemporallyWriter() { - try { - uploadStreamObserver.onError(new RuntimeException()); - } catch (TechnicalException e) { - // expected - } - - verify(uploadStreamObserver).closeTemporallyWriter(); - } - - @Test - void shouldTrowTechnicalException() { - var cause = new RuntimeException(); - - var thrownException = assertThrows(TechnicalException.class, () -> uploadStreamObserver.onError(cause)); - - assertThat(thrownException.getCause()).isEqualTo(cause); - } - } - - @Nested - class TestOnComplete { - - @BeforeEach - void setup() { - when(messageBuilderAtomicReference.get()).thenReturn(bayernIdMessageBuilder); - ReflectionTestUtils.setField(uploadStreamObserver, "messageBuilder", messageBuilderAtomicReference); - } - - @Test - void shouldCallCloseTemporallyWriter() { - uploadStreamObserver.onCompleted(); - - verify(uploadStreamObserver).closeTemporallyWriter(); - } - - @Test - void shouldCallSendBayernIdMessage() { - var bayernIdMessage = BayernIdMessageTestFactory.create(); - when(bayernIdMessageBuilder.build()).thenReturn(bayernIdMessage); - - uploadStreamObserver.onCompleted(); - - verify(proxyService).sendPostfachNachricht(bayernIdMessage); - } - - @Test - void shouldCallMessageMapper() { - var bayernIdResponse = BayernIdResponseTestFactory.create(); - when(proxyService.sendPostfachNachricht(any())).thenReturn(bayernIdResponse); - - uploadStreamObserver.onCompleted(); - - verify(messageMapper).fromBayernIdResponse(bayernIdResponse); - } - - @Test - void shouldCallResponseObserver() { - var grpcSendResponse = GrpcSendBayernIdMessageResponse.newBuilder().build(); - when(messageMapper.fromBayernIdResponse(any())).thenReturn(grpcSendResponse); - - uploadStreamObserver.onCompleted(); - - verify(responseObserver).onNext(grpcSendResponse); - } - - @Test - void shouldCallSendResponse() { - uploadStreamObserver.onCompleted(); - - verify(responseObserver).onNext(any()); - } - - @Test - void shouldCallComplete() { - uploadStreamObserver.onCompleted(); - - verify(responseObserver).onCompleted(); - } - - @Test - void shouldThrowTechnicalException() { - var cause = new RuntimeException(); - - doThrow(cause).when(proxyService).sendPostfachNachricht(any()); - - var receivedException = assertThrows(TechnicalException.class, () -> uploadStreamObserver.onCompleted()); - assertThat(receivedException.getCause()).isEqualTo(cause); - } - } -} \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/akdb/BayernIdRemoteServiceTest.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/akdb/BayernIdRemoteServiceTest.java deleted file mode 100644 index 9d257bd0ad3013894d2cb1fdde68ca318bf18716..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/akdb/BayernIdRemoteServiceTest.java +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.akdb; - -import static org.assertj.core.api.Assertions.*; -import static org.mockito.Mockito.*; - -import jakarta.xml.bind.JAXBElement; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Spy; -import org.springframework.ws.client.core.WebServiceTemplate; - -import akdb.bsp.postkorb.komm.webservice.ObjectFactory; -import akdb.bsp.postkorb.komm.webservice.SendBspNachrichtNative; -import akdb.bsp.postkorb.komm.webservice.SendBspNachrichtNativeOutput; -import de.akdb.egov.bsp.nachrichten.BspNachricht; -import de.akdb.egov.bsp.nachrichten.BspQuittung; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessage; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessageMapper; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdResponse; - -class BayernIdRemoteServiceTest { - - @Spy - @InjectMocks - private BayernIdRemoteService service; - - @Mock - private BayernIdMessageMapper messageMapper; - @Mock - private ObjectFactory objectFactory; - - @Nested - class TestSendPostfachNachricht { - - @Mock - private SendBspNachrichtNative sendNachricht; - @Mock - private SendBspNachrichtNativeOutput sendBspNachrichtResponse; - @Mock - private BspQuittung bspQuittung; - @Mock - private JAXBElement<SendBspNachrichtNativeOutput> jaxbSendBspNachrichtNativeOutput; - @Mock - private BayernIdResponse response; - @Mock - private BayernIdMessage message; - - @BeforeEach - void setup(){ - doReturn(bspQuittung).when(service).createBspQuitung(any()); - doReturn(sendNachricht).when(service).createSendNachricht(any()); - } - - @Test - void shouldCallCreateSendNachricht() { - doReturn(jaxbSendBspNachrichtNativeOutput).when(service).send(any()); - - sendMessage(); - - verify(service).createSendNachricht(message); - } - - @Test - void shouldCallSendBspNachricht() { - doReturn(jaxbSendBspNachrichtNativeOutput).when(service).send(any()); - - sendMessage(); - - verify(service).sendBspNachricht(sendNachricht); - } - - @Test - void shouldCallCreateBspQuitung() { - doReturn(sendBspNachrichtResponse).when(service).sendBspNachricht(any()); - - sendMessage(); - - verify(service).createBspQuitung(sendBspNachrichtResponse); - } - - @Test - void shouldCallMessageMapper() { - doReturn(sendBspNachrichtResponse).when(service).sendBspNachricht(any()); - - sendMessage(); - - verify(messageMapper).toBayernIdResponse(bspQuittung); - } - - @Test - void shouldReturnResponse() { - doReturn(response).when(messageMapper).toBayernIdResponse(bspQuittung); - doReturn(sendBspNachrichtResponse).when(service).sendBspNachricht(any()); - - var result = sendMessage(); - - assertThat(result).isEqualTo(response); - } - - private BayernIdResponse sendMessage() { - return service.sendPostfachNachricht(message); - } - - } - - @Nested - class TestCreateSendNachricht { - - private static final String RESULT_STRING = "result"; - - @Mock - private BayernIdMessage message; - @Mock - private BspNachricht bspNachricht; - - @BeforeEach - void setup() { - doReturn(RESULT_STRING).when(service).buildBspNachrichtXml(any()); - } - - @Test - void shouldCallMessageMapper() { - service.createSendNachricht(message); - - verify(messageMapper).toBspNachricht(message); - } - - @Test - void shouldCallBuildBspNachrichtXml() { - when(messageMapper.toBspNachricht(any())).thenReturn(bspNachricht); - - service.createSendNachricht(message); - - verify(service).buildBspNachrichtXml(bspNachricht); - } - - @Test - void shouldSetBspNachricht() { - var result = service.createSendNachricht(message); - - assertThat(result.getBspNachricht()).isEqualTo(RESULT_STRING); - } - } - - @Nested - class TestSendBspNachricht { - - @Mock - private SendBspNachrichtNative sendBspNachrichtRequest; - @Mock - private JAXBElement<SendBspNachrichtNative> jaxbSendBspNachrichtNative; - @Mock - private JAXBElement<SendBspNachrichtNativeOutput> jaxbSendBspNachrichtNativeOutput; - @Mock - private SendBspNachrichtNativeOutput response; - - @BeforeEach - void setup() { - doReturn(jaxbSendBspNachrichtNativeOutput).when(service).send(any()); - when(jaxbSendBspNachrichtNativeOutput.getValue()).thenReturn(response); - } - - @Test - void shouldCallMarshaller() { - service.sendBspNachricht(sendBspNachrichtRequest); - - verify(objectFactory).createSendBspNachrichtNative(sendBspNachrichtRequest); - } - - @Test - void shouldReturnValue() { - var sendBspNachrichtNativeOutput = service.sendBspNachricht(sendBspNachrichtRequest); - - assertThat(sendBspNachrichtNativeOutput).isEqualTo(response); - } - - @Test - void shouldCallSend() { - when(objectFactory.createSendBspNachrichtNative(any())).thenReturn(jaxbSendBspNachrichtNative); - - service.sendBspNachricht(sendBspNachrichtRequest); - - verify(service).send(jaxbSendBspNachrichtNative); - } - - } - - @Nested - class TestSend { - - @Mock - private JAXBElement<SendBspNachrichtNative> jaxbSendBspNachrichtNative; - @Mock - private WebServiceTemplate webServiceTemplate; - - @Test - void shouldCallMarshalSendAndReceive() { - doReturn(webServiceTemplate).when(service).getWebServiceTemplate(); - - service.send(jaxbSendBspNachrichtNative); - - verify(webServiceTemplate).marshalSendAndReceive(jaxbSendBspNachrichtNative); - } - - } -} \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/errorhandling/ExceptionHandlerTest.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/errorhandling/ExceptionHandlerTest.java deleted file mode 100644 index ad74aecebb47abac348397281e65549b481a052b..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/errorhandling/ExceptionHandlerTest.java +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.errorhandling; - -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.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Spy; - -import de.ozgcloud.common.errorhandling.TechnicalException; -import de.ozgcloud.common.grpc.GrpcUtil; -import io.grpc.Metadata; -import io.grpc.Status; -import io.grpc.Status.Code; -import io.grpc.StatusException; - -class ExceptionHandlerTest { - - @Spy - @InjectMocks - private ExceptionHandler exceptionHandler; - - @Nested - class TestHandleTechnicalException { - - private static final TechnicalException EXCEPTION = new TechnicalException("Test"); - - @Mock - private Metadata metadata; - @Mock - private StatusException statusException; - - @Test - void shouldCallBuildInternalStatus() { - exceptionHandler.handleTechnicalException(EXCEPTION); - - verify(exceptionHandler).buildInternalStatus(EXCEPTION); - } - - @Test - void shouldCallBuildMetadata() { - exceptionHandler.handleTechnicalException(EXCEPTION); - - verify(exceptionHandler).buildMetadata(EXCEPTION.getExceptionId()); - } - - @Test - void shouldCallCreateStatusException() { - var status = Status.INTERNAL; - doReturn(status).when(exceptionHandler).buildInternalStatus(any()); - doReturn(metadata).when(exceptionHandler).buildMetadata(any()); - - exceptionHandler.handleTechnicalException(EXCEPTION); - - verify(exceptionHandler).createStatusException(status, metadata); - } - - @Test - void shouldReturnStatusException() { - doReturn(statusException).when(exceptionHandler).createStatusException(any(), any()); - - var result = exceptionHandler.handleTechnicalException(EXCEPTION); - - assertThat(result).isEqualTo(statusException); - } - } - - @Nested - class TestHandleRuntimeException { - - private static final RuntimeException EXCEPTION = new RuntimeException("Test"); - - @Mock - private Metadata metadata; - @Mock - private StatusException statusException; - - @Test - void shouldCallBuildInternalStatus() { - exceptionHandler.handleRuntimeException(EXCEPTION); - - verify(exceptionHandler).buildInternalStatus(EXCEPTION); - } - - @Test - void shouldCallCreateExceptionId() { - exceptionHandler.handleRuntimeException(EXCEPTION); - - verify(exceptionHandler).createExceptionId(); - } - - @Test - void shouldCallBuildMetadata() { - var exceptionId = "42"; - doReturn(exceptionId).when(exceptionHandler).createExceptionId(); - - exceptionHandler.handleRuntimeException(EXCEPTION); - - verify(exceptionHandler).buildMetadata(exceptionId); - } - - @Test - void shouldCallCreateStatusException() { - var status = Status.INTERNAL; - doReturn(status).when(exceptionHandler).buildInternalStatus(any()); - doReturn(metadata).when(exceptionHandler).buildMetadata(any()); - - exceptionHandler.handleRuntimeException(EXCEPTION); - - verify(exceptionHandler).createStatusException(status, metadata); - } - - @Test - void shouldReturnStatusException() { - doReturn(statusException).when(exceptionHandler).createStatusException(any(), any()); - - var result = exceptionHandler.handleRuntimeException(EXCEPTION); - - assertThat(result).isEqualTo(statusException); - } - } - - @Nested - class TestBuildInternalStatus { - - private static final Exception CAUSE = new Exception("Cause"); - private static final RuntimeException EXCEPTION = new RuntimeException("Test", CAUSE); - - @Test - void shouldSetInternalStatusCode() { - var result = exceptionHandler.buildInternalStatus(EXCEPTION); - - assertThat(result.getCode()).isEqualTo(Code.INTERNAL); - } - - @Test - void shouldSetDescription() { - var result = exceptionHandler.buildInternalStatus(EXCEPTION); - - assertThat(result.getDescription()).isEqualTo(EXCEPTION.getMessage()); - } - - @Test - void shouldSetCause() { - var result = exceptionHandler.buildInternalStatus(EXCEPTION); - - assertThat(result.getCause()).isEqualTo(CAUSE); - } - } - - @Nested - class TestBuildMetadata { - - private static final String EXCEPTION_ID = "42"; - @Test - void shouldSetExceptionIdKey() { - var result = exceptionHandler.buildMetadata(EXCEPTION_ID); - - assertThat(result.keys()).containsOnly(ExceptionHandler.KEY_EXCEPTION_ID.toLowerCase()); - } - - @Test - void shouldSetExceptionIdValue() { - var result = exceptionHandler.buildMetadata(EXCEPTION_ID); - - assertThat(result.get(GrpcUtil.keyOfString(ExceptionHandler.KEY_EXCEPTION_ID))).isEqualTo(EXCEPTION_ID); - } - - } -} \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/AbsenderTestFactory.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/AbsenderTestFactory.java deleted file mode 100644 index 31164b3b208dd923bc8d7f0ee156bcc73546d841..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/AbsenderTestFactory.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.Absender.AbsenderBuilder; - -public class AbsenderTestFactory { - - public static final String ABSENDER_POSTKORB_ID = "absenderPostkorbId"; - public static final String NAME = "Musterstadt Stadtverwaltung"; - public static final String ANSCHRIFT = "Musterstraße 1"; - public static final String EMAIL = "mail@exam.ple"; - public static final String TELEFON = "0456123456789"; - public static final String HYPERLINK = "http://some.link"; - public static final String MANDANT = "Musterstadt"; - public static final String DIENST = "Stadtverwaltung"; - public static final String GEMEINDE_SCHLUESSEL = "123456789"; - - public static Absender create() { - return createBuilder().build(); - } - - public static AbsenderBuilder createBuilder() { - return Absender.builder() - .postkorbId(ABSENDER_POSTKORB_ID) - .name(NAME) - .anschrift(ANSCHRIFT) - .email(EMAIL) - .telefon(TELEFON) - .hyperlink(HYPERLINK) - .mandant(MANDANT) - .dienst(DIENST) - .gemeindeschluessel(GEMEINDE_SCHLUESSEL); - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/AttachmentTestFactory.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/AttachmentTestFactory.java deleted file mode 100644 index bc3f4fd378d3af6be1a28a3fbb892f760f4e1d38..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/AttachmentTestFactory.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -import java.io.ByteArrayInputStream; - -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.Attachment.AttachmentBuilder; - -public class AttachmentTestFactory { - - public static final String FILE_NAME = "test.txt"; - public static final String TYPE = "plain/text"; - public static final byte[] CONTENT = "test".getBytes(); - - public static Attachment create() { - return createBuilder().build(); - } - - public static AttachmentBuilder createBuilder() { - return Attachment.builder() - .name(FILE_NAME) - .type(TYPE) - .content(new ByteArrayInputStream(CONTENT)); - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdMessageMapperTest.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdMessageMapperTest.java deleted file mode 100644 index f807b82c3e86863a7041a9fa29b148205f083262..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdMessageMapperTest.java +++ /dev/null @@ -1,506 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -import static org.assertj.core.api.Assertions.*; -import static org.mockito.Mockito.*; - -import java.io.ByteArrayInputStream; -import java.util.List; - -import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; -import org.mapstruct.factory.Mappers; -import org.mockito.Mockito; -import org.testcontainers.shaded.org.apache.commons.io.IOUtils; - -import de.akdb.egov.bsp.nachrichten.BspNachricht; -import de.akdb.egov.bsp.nachrichten.BspQuittung; -import de.akdb.egov.bsp.nachrichten.DataContainerType; -import de.akdb.egov.bsp.nachrichten.FreiTextType; -import de.akdb.egov.bsp.nachrichten.NachrichtenInhaltType; -import de.akdb.egov.bsp.nachrichten.NachrichtenKopfType; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.BayernIdResponseTestFactory; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcAbsenderTestFactory; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcBayernIdMessageMetadata; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcBayernIdMessageMetadataTestFactory; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcEmpfaengerTestFactory; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcSendBayernIdMessageResponse; -import lombok.SneakyThrows; - -class BayernIdMessageMapperTest { - - private BayernIdMessageMapper mapper = Mappers.getMapper(BayernIdMessageMapper.class); - - @Nested - class ToBayernIdMessage { - - private static final GrpcBayernIdMessageMetadata MESSAGE_METADATA = GrpcBayernIdMessageMetadataTestFactory.create(); - - @Test - void shouldSetMessageId() { - var result = mapToBayernIdMessage(); - - assertThat(result.getMessageId()).isEqualTo(GrpcBayernIdMessageMetadataTestFactory.MESSAGE_ID); - } - - @Test - void shouldSetCreatedAt() { - var result = mapToBayernIdMessage(); - - assertThat(result.getCreatedAt()).isEqualTo(GrpcBayernIdMessageMetadataTestFactory.CREATED_AT_STRING); - } - - @Test - void shouldSetSubject() { - var result = mapToBayernIdMessage(); - - assertThat(result.getSubject()).isEqualTo(GrpcBayernIdMessageMetadataTestFactory.SUBJECT); - } - - @Test - void shoulSetStorkQaaLevel() { - var result = mapToBayernIdMessage(); - - assertThat(result.getStorkQaaLevel()).isEqualTo(GrpcBayernIdMessageMetadataTestFactory.STORK_QAA_LEVEL); - } - - @Test - void shouldSetVorgangId() { - var result = mapToBayernIdMessage(); - - assertThat(result.getVorgangId()).isEqualTo(GrpcBayernIdMessageMetadataTestFactory.VORGANG_ID); - } - - @Test - void shouldSetText() { - var result = mapToBayernIdMessage(); - - assertThat(result.getText()).isEqualTo(GrpcBayernIdMessageMetadataTestFactory.MESSAGE_TEXT); - } - - @Nested - class TestSetAbsender { - - @Test - void shouldSetName() { - var result = mapToAbsender(); - - assertThat(result.getName()).isEqualTo(GrpcAbsenderTestFactory.NAME); - } - - @Test - void shouldSetAnschrift() { - var result = mapToAbsender(); - - assertThat(result.getAnschrift()).isEqualTo(GrpcAbsenderTestFactory.ANSCHRIFT); - } - - @Test - void shouldSetEmail() { - var result = mapToAbsender(); - - assertThat(result.getEmail()).isEqualTo(GrpcAbsenderTestFactory.EMAIL); - } - - @Test - void shouldSetTelefon() { - var result = mapToAbsender(); - - assertThat(result.getTelefon()).isEqualTo(GrpcAbsenderTestFactory.TELEFON); - } - - @Test - void shouldSetHyperlink() { - var result = mapToAbsender(); - - assertThat(result.getHyperlink()).isEqualTo(GrpcAbsenderTestFactory.HYPERLINK); - } - - @Test - void shouldSetMandant() { - var result = mapToAbsender(); - - assertThat(result.getMandant()).isEqualTo(GrpcAbsenderTestFactory.MANDANT); - } - - @Test - void shouldSetDienst() { - var result = mapToAbsender(); - - assertThat(result.getDienst()).isEqualTo(GrpcAbsenderTestFactory.DIENST); - } - - @Test - void shouldSetGemeindeschluessel() { - var result = mapToAbsender(); - - assertThat(result.getGemeindeschluessel()).isEqualTo(GrpcAbsenderTestFactory.GEMEINDE_SCHLUESSEL); - } - - private Absender mapToAbsender() { - var bayernIdMessage = mapToBayernIdMessage(); - assertThat(bayernIdMessage.getAbsender()).isNotNull(); - return bayernIdMessage.getAbsender(); - } - } - - @Nested - class TestSetEmpfaenger { - - @Test - void shouldSetPostfachId() { - var result = mapToEmpfänger(); - - assertThat(result.getPostkorbId()).isEqualTo(GrpcEmpfaengerTestFactory.POSTFACH_ID); - } - - @Test - void shouldSetName() { - var result = mapToEmpfänger(); - - assertThat(result.getName()).isEqualTo(GrpcEmpfaengerTestFactory.NAME); - } - - @Test - void shouldSetAnschrift() { - var result = mapToEmpfänger(); - - assertThat(result.getAnschrift()).isEqualTo(GrpcEmpfaengerTestFactory.ANSCHRIFT); - } - - private Empfaenger mapToEmpfänger() { - var bayernIdMessage = mapToBayernIdMessage(); - assertThat(bayernIdMessage.getEmpfaenger()).isNotNull(); - return bayernIdMessage.getEmpfaenger(); - - } - } - - private BayernIdMessage mapToBayernIdMessage() { - return mapper.toBayernIdMessage(MESSAGE_METADATA).build(); - } - } - - @Nested - class TestFromBayernIdResponse { - - private static final BayernIdResponse BAYERN_ID_RESPONSE = BayernIdResponseTestFactory.create(); - - @Test - void shouldSetSuccess() { - var result = mapToGrpcSendBayernIdMessageResponse(); - - assertThat(result.getSuccess()).isTrue(); - } - - @Test - void shouldSetStatus() { - var result = mapToGrpcSendBayernIdMessageResponse(); - - assertThat(result.getStatus()).isEqualTo(BayernIdResponseTestFactory.STATUS); - } - - @Test - void shouldSetMessage() { - var result = mapToGrpcSendBayernIdMessageResponse(); - - assertThat(result.getMessage()).isEqualTo(BayernIdResponseTestFactory.MESSAGE); - } - - private GrpcSendBayernIdMessageResponse mapToGrpcSendBayernIdMessageResponse() { - return mapper.fromBayernIdResponse(BAYERN_ID_RESPONSE); - } - } - - @Nested - class TestToBspNachricht { - - @Nested - class TestSetNachrichtenKopf { - - @Test - void shouldSetNachrichtId() { - var result = mapToNachrichtenKopf().getIdentifikationNachricht(); - - assertThat(result.getNachrichtenId()).isEqualTo(BayernIdMessageTestFactory.MESSAGE_ID); - } - - @Test - void shouldSetErstellungszeitpunkt() { - var result = mapToNachrichtenKopf().getIdentifikationNachricht(); - - assertThat(result.getErstellungszeitpunkt()).hasToString(BayernIdMessageTestFactory.CREATED_AT); - } - - @Nested - class TestMapEmpfaenger { - - @Test - void shouldSetPostkorbId() { - var result = mapToNachrichtenKopf().getEmpfaenger(); - - assertThat(result.getPostkorbId()).isEqualTo(EmpfaengerTestFactory.POSTKORB_ID); - } - - @Test - void shouldSetName() { - var result = mapToNachrichtenKopf().getEmpfaenger(); - - assertThat(result.getName()).isEqualTo(EmpfaengerTestFactory.NAME); - } - - @Test - void shouldSetAnschrift() { - var result = mapToNachrichtenKopf().getEmpfaenger(); - - assertThat(result.getAnschrift()).isEqualTo(EmpfaengerTestFactory.ANSCHRIFT); - } - } - - @Nested - class TestMapAbsender { - - @Test - void shouldSetName() { - var result = mapToNachrichtenKopf().getAbsender(); - - assertThat(result.getName()).isEqualTo(AbsenderTestFactory.NAME); - } - - @Test - void shouldSetAnschrift() { - var result = mapToNachrichtenKopf().getAbsender(); - - assertThat(result.getAnschrift()).isEqualTo(AbsenderTestFactory.ANSCHRIFT); - } - - @Test - void shouldSetEmail() { - var result = mapToNachrichtenKopf().getAbsender(); - - assertThat(result.getEmail()).isEqualTo(AbsenderTestFactory.EMAIL); - } - - @Test - void shouldSetTelefon() { - var result = mapToNachrichtenKopf().getAbsender(); - - assertThat(result.getTelefon()).isEqualTo(AbsenderTestFactory.TELEFON); - } - - @Test - void shouldSetHyperlink() { - var result = mapToNachrichtenKopf().getAbsender(); - - assertThat(result.getHyperlink()).isEqualTo(AbsenderTestFactory.HYPERLINK); - } - - @Test - void shouldSetMandant() { - var result = mapToNachrichtenKopf().getAbsender(); - - assertThat(result.getMandant()).isEqualTo(AbsenderTestFactory.MANDANT); - } - - @Test - void shouldSetDienst() { - var result = mapToNachrichtenKopf().getAbsender(); - - assertThat(result.getDienst()).isEqualTo(AbsenderTestFactory.DIENST); - } - - @Test - void shouldSetGemeindeschluessel() { - var result = mapToNachrichtenKopf().getAbsender(); - - assertThat(result.getGemeindeschluessel().getSchluessel()).isEqualTo(AbsenderTestFactory.GEMEINDE_SCHLUESSEL); - } - - @Test - void shouldSetPostkorbId() { - var result = mapToNachrichtenKopf().getAbsender(); - - assertThat(result.getPostkorbId()).isEqualTo(AbsenderTestFactory.ABSENDER_POSTKORB_ID); - } - - @Test - void shouldSetGemeindeschluesselTabelle() { - var result = mapToNachrichtenKopf().getAbsender(); - - assertThat(result.getGemeindeschluessel().getTabelle()).isEqualTo(BayernIdMessageMapper.TABELLE_NUMMER_GEMEINDE_SCHLUESSEL); - } - - } - - private NachrichtenKopfType mapToNachrichtenKopf() { - var bspNachricht = mapToBspNachricht(); - assertThat(bspNachricht.getNachrichtenKopf()).isNotNull(); - return bspNachricht.getNachrichtenKopf(); - } - } - - @Nested - class TestNachrichtenInhalt { - - @Test - void shouldSetBetreff() { - var result = mapToNachrichtenInhalt(); - - assertThat(result.getBetreff()).isEqualTo(BayernIdMessageTestFactory.SUBJECT); - } - - @Test - void shouldSetStorkQaaLevel() { - var result = mapToNachrichtenInhalt(); - - assertThat(result.getStorkQaaLevel().name()).isEqualTo(BayernIdMessageTestFactory.STORK_QAA_LEVEL); - } - - @Test - void shouldSetVorgangsId() { - var result = mapToNachrichtenInhalt(); - - assertThat(result.getZuVorgang().getVorgangsId()).isEqualTo(BayernIdMessageTestFactory.VORGANG_ID); - } - - @Nested - class TestMapFreiText { - - @Test - void shouldSetEncodingSchluessel() { - var result = mapToFreiText(); - - assertThat(result.getEncoding().getSchluessel()).isEqualTo(BayernIdMessageMapper.TEXT_ENCODING_PLAIN_TEXT); - } - - @Test - void shouldSetEncodingTabelle() { - var result = mapToFreiText(); - - assertThat(result.getEncoding().getTabelle()).isEqualTo(BayernIdMessageMapper.TABELLE_NUMMER_TEXT_ENCODING); - } - - @Test - void shouldSetText() { - var result = mapToFreiText(); - - assertThat(result.getText()).isEqualTo(BayernIdMessageTestFactory.TEXT); - } - - private FreiTextType mapToFreiText() { - var bspNachricht = mapToBspNachricht(); - assertThat(bspNachricht.getNachrichtenInhalt().getFreiText()).isNotNull(); - return bspNachricht.getNachrichtenInhalt().getFreiText(); - } - } - - @Nested - class TestMapAttachments { - - @Test - void shouldSetName() { - var result = mapToDataContainerType(); - - assertThat(result.get(0).getFileName()).isEqualTo(AttachmentTestFactory.FILE_NAME); - } - - @Test - void shouldSetFileType() { - var result = mapToDataContainerType(); - - assertThat(result.get(0).getFileType().getSchluessel()).isEqualTo(AttachmentTestFactory.TYPE); - } - - @Test - void shouldSetFielTypeTable() { - var result = mapToDataContainerType(); - - assertThat(result.get(0).getFileType().getTabelle()).isEqualTo(BayernIdMessageMapper.TABELLE_NUMMER_MIME_TYPE); - } - - @Test - void shouldSetInhalt() { - var result = mapToDataContainerType(); - - var attachmentInputStream = result.get(0); - assertThat(attachmentInputStream.getInhalt()).isEqualTo(AttachmentTestFactory.CONTENT); - } - - @SneakyThrows - @Test - void shouldCloseSourceStream() { - var inputStream = spy(new ByteArrayInputStream(AttachmentTestFactory.CONTENT)); - - var r1 = mapper.toDataContainerType(AttachmentTestFactory.createBuilder().content(inputStream).build()); - - verify(inputStream).close(); - } - - private List<DataContainerType> mapToDataContainerType() { - return mapToNachrichtenInhalt().getDataContainer(); - } - } - - private NachrichtenInhaltType mapToNachrichtenInhalt() { - var bspNachricht = mapToBspNachricht(); - assertThat(bspNachricht.getNachrichtenInhalt()).isNotNull(); - return bspNachricht.getNachrichtenInhalt(); - } - } - - private BspNachricht mapToBspNachricht() { - return mapper.toBspNachricht(BayernIdMessageTestFactory.create()); - } - } - - @Nested - class TestMapToBayernIdResponse { - - @Test - void shouldSetSuccess() { - var result = mapToBayernIdResponse(); - - assertThat(result.isSuccess()).isTrue(); - } - - @Test - void shouldSetStatus() { - var result = mapToBayernIdResponse(); - - assertThat(result.getStatus()).isEqualTo(BspQuitungTestFactory.STATUS_SCHLUESSEL); - } - - @Test - void shouldSetMessage() { - var result = mapToBayernIdResponse(); - - assertThat(result.getMessage()).isEqualTo(BspQuitungTestFactory.ERGAENZENDE_HINWEISE); - } - - private BayernIdResponse mapToBayernIdResponse() { - return mapper.toBayernIdResponse(BspQuitungTestFactory.create()); - } - } -} \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdMessageTestFactory.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdMessageTestFactory.java deleted file mode 100644 index a9de0cb463ce242f7c327f0bdf1a5de7fb1b590a..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdMessageTestFactory.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -import java.util.Collections; -import java.util.List; - -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.message.BayernIdMessage.BayernIdMessageBuilder; - -public class BayernIdMessageTestFactory { - - public static final String MESSAGE_ID = "messageId"; - public static final String CREATED_AT = "2021-01-01T00:00:00Z"; - public static final String VORGANG_ID = "vorgangId"; - public static final String SUBJECT = "subject"; - public static final String STORK_QAA_LEVEL = "LEVEL_1"; - public static final String TEXT = "text"; - - public static BayernIdMessage create() { - return createBuilder().build(); - } - - public static BayernIdMessageBuilder createBuilder() { - return BayernIdMessage.builder() - .messageId(MESSAGE_ID) - .createdAt(CREATED_AT) - .vorgangId(VORGANG_ID) - .subject(SUBJECT) - .storkQaaLevel(STORK_QAA_LEVEL) - .text(TEXT) - .empfaenger(EmpfaengerTestFactory.create()) - .absender(AbsenderTestFactory.create()) - .attachments(List.of(AttachmentTestFactory.create())); - } - -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdRsponseTestFactory.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdRsponseTestFactory.java deleted file mode 100644 index a66934b4c61a437c29a15f6e426488f8f8e51ada..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BayernIdRsponseTestFactory.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -public class BayernIdRsponseTestFactory { - - -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BspQuitungTestFactory.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BspQuitungTestFactory.java deleted file mode 100644 index a526db4943155c6b1d4301abb6374de7bcf80bd5..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/BspQuitungTestFactory.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -import de.akdb.egov.bsp.nachrichten.BspQuittung; -import de.akdb.egov.bsp.nachrichten.SchluesseltabelleType; - -public class BspQuitungTestFactory { - - public static final String STATUS_SCHLUESSEL = "OK"; - public static final String ERGAENZENDE_HINWEISE = "Hinweis"; - - public static BspQuittung create() { - var statusTable = new SchluesseltabelleType(); - statusTable.setSchluessel(STATUS_SCHLUESSEL); - var quittung = new BspQuittung(); - quittung.setAnnahmeErfolgreich(true); - quittung.setErgebnisStatus(statusTable); - quittung.setErgaenzendeHinweise(ERGAENZENDE_HINWEISE); - return quittung; - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/EmpfaengerTestFactory.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/EmpfaengerTestFactory.java deleted file mode 100644 index ce10fb25a7a096df6b04309a52b80d8bd1ecaa85..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/message/EmpfaengerTestFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.message; - -public class EmpfaengerTestFactory { - - public static final String POSTKORB_ID = "postfachId"; - public static final String NAME = "name"; - public static final String ANSCHRIFT = "anschrift"; - - public static Empfaenger create() { - return createBuilder().build(); - } - - public static Empfaenger.EmpfaengerBuilder createBuilder() { - return Empfaenger.builder() - .postkorbId(POSTKORB_ID) - .name(NAME) - .anschrift(ANSCHRIFT); - } -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/BayernIdResponse.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/BayernIdResponse.java deleted file mode 100644 index 7e580efe72ed4adf560a30d132329b182808ab35..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/BayernIdResponse.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.mock; - -import lombok.Builder; -import lombok.Getter; - -@Builder -@Getter -public class BayernIdResponse { - - private boolean success; - private String status; - private String message; - -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/GrpcBayernIdProxyTestClient.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/GrpcBayernIdProxyTestClient.java deleted file mode 100644 index 14377844a1a24d94727bb4e32893e0b36ffcec43..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/GrpcBayernIdProxyTestClient.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.mock; - -import java.io.InputStream; -import java.util.Set; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; - -import org.apache.commons.lang3.tuple.Pair; - -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.BayernIdProxyServiceGrpc; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcAttachmentMetadata; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcBayernIdMessageMetadata; -import lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; - -@RequiredArgsConstructor -public class GrpcBayernIdProxyTestClient { - - static final int CHUNK_SIZE = 255 * 1024; - - private final BayernIdProxyServiceGrpc.BayernIdProxyServiceStub serviceStub; - - @SneakyThrows - public BayernIdResponse sendMessage(GrpcBayernIdMessageMetadata messageMetadata, Set<Pair<GrpcAttachmentMetadata, InputStream>> attachments) throws - ExecutionException { - var streamer = new MockChunkedDataStreamer(messageMetadata, attachments, CHUNK_SIZE); - var future = new CompletableFuture<BayernIdResponse>(); - serviceStub.sendMessageAsStream(new MockBayernIdSendStreamObserver(future, streamer)); - return future.get(10, TimeUnit.SECONDS); - } - -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/MockBayernIdInitializer.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/MockBayernIdInitializer.java deleted file mode 100644 index b8783960212ad82bc38654f8103e29deeb5027f2..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/MockBayernIdInitializer.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.mock; - -import static com.github.tomakehurst.wiremock.client.WireMock.*; - -import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo; - -import lombok.RequiredArgsConstructor; - -@RequiredArgsConstructor -public class MockBayernIdInitializer { - - private static final String RESPONSE_TEMPLATE = """ - <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> - <SOAP-ENV:Header/> - <SOAP-ENV:Body> - <ns2:sendBspNachrichtNativeOutput xmlns:ns2="urn:akdb:bsp:postkorb:komm:webservice"> - <bspQuittung>%s</bspQuittung> - </ns2:sendBspNachrichtNativeOutput> - </SOAP-ENV:Body> - </SOAP-ENV:Envelope> - """; - public static final String BSP_NACHRICHT_SUCCESS = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><BspQuittung version=\"1.5\" fassung=\"2020-03-15\" xmlns=\"http://www.akdb.de/egov/bsp/nachrichten\"><AnnahmeErfolgreich>true</AnnahmeErfolgreich><ErgebnisStatus><Tabelle>9006</Tabelle><Schluessel>0</Schluessel></ErgebnisStatus><ErgaenzendeHinweise>Nachricht wurde angenommen</ErgaenzendeHinweise></BspQuittung>"; - public static final String BSP_NACHRICHT_ERROR = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><BspQuittung version=\"1.5\" fassung=\"2020-03-15\" xmlns=\"http://www.akdb.de/egov/bsp/nachrichten\"><AnnahmeErfolgreich>false</AnnahmeErfolgreich><ErgebnisStatus><Tabelle>9006</Tabelle><Schluessel>31</Schluessel></ErgebnisStatus><ErgaenzendeHinweise>Unzulässiger Nachrichteninhalt</ErgaenzendeHinweise></BspQuittung>"; - - public final WireMockRuntimeInfo wmRuntimeInfo; - - public void createResponseOk() { - wmRuntimeInfo.getWireMock().register( - post("/").willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", "text/xml") - .withHeader("charset", "UTF-8") - .withBody(RESPONSE_TEMPLATE.formatted(BSP_NACHRICHT_SUCCESS)) - )); - } - - public void createResponseError() { - wmRuntimeInfo.getWireMock().register( - post("/").willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", "text/xml") - .withHeader("charset", "UTF-8") - .withBody(RESPONSE_TEMPLATE.formatted(BSP_NACHRICHT_ERROR)) - )); - } - - public void createResponseWithException() { - wmRuntimeInfo.getWireMock().register( - post("/").willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", "text/xml") - .withHeader("charset", "UTF-8") - .withBody("Internal Server Error") - )); - } - - public void create500Response() { - wmRuntimeInfo.getWireMock().register( - post("/").willReturn(aResponse() - .withStatus(500) - .withBody("Internal Server Error") - )); - } - -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/MockBayernIdSendStreamObserver.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/MockBayernIdSendStreamObserver.java deleted file mode 100644 index 242136773ccd360dba8ebb019b4113b579f5668a..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/MockBayernIdSendStreamObserver.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.mock; - -import java.util.concurrent.CompletableFuture; - -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcSendBayernIdMessageRequest; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcSendBayernIdMessageResponse; -import io.grpc.stub.ClientCallStreamObserver; -import io.grpc.stub.ClientResponseObserver; -import lombok.AccessLevel; -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -@RequiredArgsConstructor(access = AccessLevel.PROTECTED) -class MockBayernIdSendStreamObserver implements ClientResponseObserver<GrpcSendBayernIdMessageRequest, GrpcSendBayernIdMessageResponse> { - - private final CompletableFuture<BayernIdResponse> fileIdFuture; - private final MockChunkedDataStreamer fileStreamer; - - @Getter - private BayernIdResponse bayernIdResponse; - - private ClientCallStreamObserver<GrpcSendBayernIdMessageRequest> requestObserver; - - @Override - public void beforeStart(ClientCallStreamObserver<GrpcSendBayernIdMessageRequest> requestStream) { - this.requestObserver = requestStream; - requestObserver.setOnReadyHandler(() -> fileStreamer.sendChunkedTo(requestObserver)); - } - - @Override - public void onNext(GrpcSendBayernIdMessageResponse response) { - bayernIdResponse = BayernIdResponse.builder().success(response.getSuccess()).message(response.getMessage()).status(response.getStatus()) - .build(); - } - - @Override - public void onError(Throwable t) { - fileIdFuture.completeExceptionally(t); - } - - @Override - public void onCompleted() { - fileIdFuture.complete(bayernIdResponse); - } -} \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/MockChunkedDataStreamer.java b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/MockChunkedDataStreamer.java deleted file mode 100644 index 3ecf22321e0254432f47efd0cacc4302fc6b119d..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/proxy/mock/MockChunkedDataStreamer.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -package de.ozgcloud.nachrichten.postfach.bayernid.proxy.mock; - -import static java.util.Objects.*; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Set; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.tuple.Pair; - -import com.google.protobuf.ByteString; - -import de.ozgcloud.common.errorhandling.TechnicalException; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcAttachmentMetadata; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcAttachments; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcBayernIdMessageMetadata; -import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcSendBayernIdMessageRequest; -import io.grpc.stub.CallStreamObserver; -import lombok.extern.log4j.Log4j2; - -@Log4j2 -class MockChunkedDataStreamer { - - private Set<Pair<GrpcAttachmentMetadata, InputStream>> attachments; - private final int chunkSize; - private boolean isFinished = false; - private GrpcBayernIdMessageMetadata messageMetadata; - - public MockChunkedDataStreamer(GrpcBayernIdMessageMetadata metadata, Set<Pair<GrpcAttachmentMetadata, InputStream>> attachments, int chunkSize) { - this.messageMetadata = metadata; - this.attachments = attachments; - this.chunkSize = chunkSize; - } - - public synchronized void sendChunkedTo(CallStreamObserver<GrpcSendBayernIdMessageRequest> streamObserver) { - if (isFinished) { - return; - } - sendMessageMetadata(streamObserver); - attachments.forEach(attachment -> { - sendAttachmentMetadata(attachment.getLeft(), streamObserver); - sendContentChunked(attachment.getRight(), streamObserver); - }); - handleFileEndReached(streamObserver); - } - - void sendContentChunked(InputStream contentStream, CallStreamObserver<GrpcSendBayernIdMessageRequest> streamObserver) { - var inProgerss = true; - do { - int size = sendNextChunk(contentStream, streamObserver); - if (size < chunkSize) { - sendNextChunk(contentStream, streamObserver); - inProgerss = false; - } - } while (inProgerss && streamObserver.isReady()); - IOUtils.closeQuietly(contentStream); - } - - void sendMessageMetadata(CallStreamObserver<GrpcSendBayernIdMessageRequest> streamObserver) { - if (nonNull(messageMetadata)) { - streamObserver.onNext(buildRequestWithMetadata(messageMetadata)); - messageMetadata = null; - } - } - - GrpcSendBayernIdMessageRequest buildRequestWithMetadata(GrpcBayernIdMessageMetadata metadata) { - return GrpcSendBayernIdMessageRequest.newBuilder().setMessageMetadata(metadata).build(); - } - - void sendAttachmentMetadata(GrpcAttachmentMetadata metadata, CallStreamObserver<GrpcSendBayernIdMessageRequest> streamObserver) { - streamObserver.onNext(buildRequestWithAttachmentMetadata(metadata)); - } - - GrpcSendBayernIdMessageRequest buildRequestWithAttachmentMetadata(GrpcAttachmentMetadata attachmentMetadata) { - return GrpcSendBayernIdMessageRequest.newBuilder() - .setAttachments(GrpcAttachments.newBuilder().setAttachmentMetadata(attachmentMetadata).build()).build(); - } - - private int sendNextChunk(InputStream contentStream, CallStreamObserver<GrpcSendBayernIdMessageRequest> streamObserver) { - try { - var content = contentStream.readNBytes(chunkSize); - var size = content.length; - if (size > 0) { - streamObserver.onNext(buildRequestWithContent(content)); - } - return size; - } catch (IOException e) { - throw new TechnicalException("Error on sending a single chunk", e); - } - } - - GrpcSendBayernIdMessageRequest buildRequestWithContent(byte[] bytes) { - return GrpcSendBayernIdMessageRequest.newBuilder().setAttachments(GrpcAttachments.newBuilder().setContent(ByteString.copyFrom(bytes)).build()) - .build(); - } - - synchronized void handleFileEndReached(CallStreamObserver<GrpcSendBayernIdMessageRequest> streamObserver) { - isFinished = true; - streamObserver.onCompleted(); - } - -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension deleted file mode 100644 index 79b126e6cdb86bec1f4f08c205de8961bde1934a..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension +++ /dev/null @@ -1 +0,0 @@ -org.mockito.junit.jupiter.MockitoExtension \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/application-itcase.yml b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/application-itcase.yml deleted file mode 100644 index d4d24173ab74f278b1e07c54dc468805f8965fdc..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/application-itcase.yml +++ /dev/null @@ -1,10 +0,0 @@ -logging: - level: - ROOT: INFO - '[org.springframework]': WARN - '[de.ozgcloud]': INFO - config: classpath:log4j2-local.xml - -grpc: - server: - port: -1 diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/junit-platform.properties b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/junit-platform.properties deleted file mode 100644 index 1cebb76d5a58ac034b2627d12411d82d1e85821e..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/junit-platform.properties +++ /dev/null @@ -1 +0,0 @@ -junit.jupiter.extensions.autodetection.enabled = true \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker deleted file mode 100644 index ca6ee9cea8ec189a088d50559325d4e84ff8ad09..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker +++ /dev/null @@ -1 +0,0 @@ -mock-maker-inline \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/test.pdf b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/test.pdf deleted file mode 100644 index 184dd5915515ca49dfaa8840883e6259d2a667aa..0000000000000000000000000000000000000000 Binary files a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/test.pdf and /dev/null differ diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/test.txt b/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/test.txt deleted file mode 100644 index 814be41a4bbeee81df9c0f296e3fcc3a3cef33f0..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-impl/src/test/resources/test.txt +++ /dev/null @@ -1 +0,0 @@ -some simple text \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-interface/pom.xml b/nachrichten-bayernid-proxy/bayernid-proxy-interface/pom.xml deleted file mode 100644 index 612ae0ffc4620693bb99d891656cb9200a0f701a..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-interface/pom.xml +++ /dev/null @@ -1,121 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Copyright (C) 2022-2023 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>de.ozgcloud.common</groupId> - <artifactId>ozgcloud-common-dependencies</artifactId> - <version>4.0.1</version> - <relativePath/> - </parent> - - <groupId>de.ozgcloud.nachrichten</groupId> - <artifactId>bayernid-proxy-interface</artifactId> - <version>0.4.0-SNAPSHOT</version> - - <name>OZG-Cloud BayernID Proxy Interface</name> - <description>Interface (gRPC) for BayernID Proxy Service</description> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <java.version>21</java.version> - <maven.compiler.source>${java.version}</maven.compiler.source> - <maven.compiler.target>${java.version}</maven.compiler.target> - - <find-and-replace-maven-plugin.version>1.1.0</find-and-replace-maven-plugin.version> - </properties> - - <dependencies> - <!-- GRPC --> - <dependency> - <groupId>io.grpc</groupId> - <artifactId>grpc-stub</artifactId> - </dependency> - <dependency> - <groupId>io.grpc</groupId> - <artifactId>grpc-protobuf</artifactId> - </dependency> - <dependency> - <groupId>jakarta.annotation</groupId> - <artifactId>jakarta.annotation-api</artifactId> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>com.github.os72</groupId> - <artifactId>protoc-jar-maven-plugin</artifactId> - <version>${protoc-jar-plugin.version}</version> - <executions> - <execution> - <phase>generate-sources</phase> - <goals> - <goal>run</goal> - </goals> - <configuration> - <includeMavenTypes>direct</includeMavenTypes> - <outputTargets> - <outputTarget> - <type>java</type> - </outputTarget> - <outputTarget> - <type>grpc-java</type> - <pluginArtifact>io.grpc:protoc-gen-grpc-java:${protoc-gen.version}</pluginArtifact> - </outputTarget> - </outputTargets> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>io.github.floverfelt</groupId> - <artifactId>find-and-replace-maven-plugin</artifactId> - <version>${find-and-replace-maven-plugin.version}</version> - <executions> - <execution> - <id>exec</id> - <phase>process-sources</phase> - <goals> - <goal>find-and-replace</goal> - </goals> - <configuration> - <replacementType>file-contents</replacementType> - <baseDir>target/generated-sources/</baseDir> - <findRegex>javax</findRegex> - <replaceValue>jakarta</replaceValue> - <recursive>true</recursive> - <fileMask>.java</fileMask> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project> \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-interface/src/main/protobuf/bayernidproxy.model.proto b/nachrichten-bayernid-proxy/bayernid-proxy-interface/src/main/protobuf/bayernidproxy.model.proto deleted file mode 100644 index 91ed9ee0ab3f2db2c03907d0b12447fddab01bd9..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-interface/src/main/protobuf/bayernidproxy.model.proto +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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. - */ -syntax = "proto3"; - -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -option java_multiple_files = true; -option java_package = "de.ozgcloud.nachrichten.postfach.bayernid.proxy"; -option java_outer_classname = "BayernIdProxyModelProto"; - -message GrpcSendBayernIdMessageRequest { - oneof request { - GrpcBayernIdMessageMetadata messageMetadata = 1; - GrpcAttachments attachments = 2; - } -} - -message GrpcBayernIdMessageMetadata { - string messageId = 1; - string createdAt = 2; - GrpcAbsender absender = 3; - GrpcEmpfaenger empfaenger = 4; - string subject = 5; - string storkQaaLevel = 6; - string vorgangId = 7; - string text = 8; -} - -message GrpcAbsender { - string name = 1; - string anschrift = 2; - string email = 3; - string telefon = 4; - string hyperlink = 5; - string dienst = 6; - string mandant = 7; - string gemeindeschluessel = 8; -} - -message GrpcEmpfaenger { - string postkorbId = 1; - string name = 2; - string anschrift = 3; -} - -message GrpcAttachments { - oneof request { - GrpcAttachmentMetadata attachmentMetadata = 1; - bytes content = 2; - } -} - -message GrpcAttachmentMetadata { - string fileType = 1; - string fileName = 2; -} - -message GrpcSendBayernIdMessageResponse { - bool success = 1; - string status = 2; - string message = 3; -} diff --git a/nachrichten-bayernid-proxy/bayernid-proxy-interface/src/main/protobuf/bayernproxy.proto b/nachrichten-bayernid-proxy/bayernid-proxy-interface/src/main/protobuf/bayernproxy.proto deleted file mode 100644 index 039909e0f942195f3bc600bf04746a9c8af5f1b6..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/bayernid-proxy-interface/src/main/protobuf/bayernproxy.proto +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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. - */ -syntax = "proto3"; - -package de.ozgcloud.nachrichten.postfach.bayernid.proxy; - -import "bayernidproxy.model.proto"; - -option java_multiple_files = true; -option java_package = "de.ozgcloud.nachrichten.postfach.bayernid.proxy"; -option java_outer_classname = "BayernIdProxyProto"; - -service BayernIdProxyService { - - rpc SendMessageAsStream(stream GrpcSendBayernIdMessageRequest) returns (GrpcSendBayernIdMessageResponse); - -} diff --git a/nachrichten-bayernid-proxy/pom.xml b/nachrichten-bayernid-proxy/pom.xml deleted file mode 100644 index 6656bc561d257027b36d5646ba40806e0da5f2aa..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/pom.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Copyright (C) 2022-2023 Das Land Schleswig-Holstein vertreten durch den - Ministerpräsidenten des Landes Schleswig-Holstein - Staatskanzlei - Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - - Lizenziert unter der EUPL, Version 1.2 oder - sobald - diese von der Europäischen Kommission genehmigt wurden - - Folgeversionen der EUPL ("Lizenz"); - Sie dürfen dieses Werk ausschließlich gemäß - dieser Lizenz nutzen. - Eine Kopie der Lizenz finden Sie hier: - - https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - - Sofern nicht durch anwendbare Rechtsvorschriften - gefordert oder in schriftlicher Form vereinbart, wird - die unter der Lizenz verbreitete Software "so wie sie - ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - ausdrücklich oder stillschweigend - verbreitet. - Die sprachspezifischen Genehmigungen und Beschränkungen - unter der Lizenz sind dem Lizenztext zu entnehmen. - ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>de.ozgcloud.common</groupId> - <artifactId>ozgcloud-common-parent</artifactId> - <version>4.0.1</version> - <relativePath/> - </parent> - - <groupId>de.ozgcloud.nachrichten</groupId> - <artifactId>nachrichten-bayernid-proxy</artifactId> - <version>0.4.0-SNAPSHOT</version> - <packaging>pom</packaging> - - <name>OZG-Cloud BayernID Proxy</name> - <description>Proxy Service for BayernID</description> - - <modules> - <module>bayernid-proxy-impl</module> - <module>bayernid-proxy-interface</module> - </modules> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <java.version>21</java.version> - <maven.compiler.source>${java.version}</maven.compiler.source> - <maven.compiler.target>${java.version}</maven.compiler.target> - <jaxb-maven-plugin.version>4.0.0</jaxb-maven-plugin.version> - <wiremock.version>3.5.1</wiremock.version> - </properties> - - <build> - <plugins> - <plugin> - <groupId>com.mycila</groupId> - <artifactId>license-maven-plugin</artifactId> - </plugin> - </plugins> - </build> -</project> \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/run_helm_test.sh b/nachrichten-bayernid-proxy/run_helm_test.sh deleted file mode 100755 index 21019cc23dab325f1ec88421dc73caa849af660f..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/run_helm_test.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -set -e - -helm template ./src/main/helm/ -f src/test/helm-linter-values.yaml -helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/ -cd src/main/helm && helm unittest -f '../../test/helm/*.yaml' . - diff --git a/nachrichten-bayernid-proxy/src/main/helm/.helmignore b/nachrichten-bayernid-proxy/src/main/helm/.helmignore deleted file mode 100644 index 3d0dbe446770be5127eb719b695414c427b09715..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/main/helm/.helmignore +++ /dev/null @@ -1 +0,0 @@ -tests/ \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/main/helm/Chart.yaml b/nachrichten-bayernid-proxy/src/main/helm/Chart.yaml deleted file mode 100644 index b04099d33913b9524a729a95a20dc769f5663839..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/main/helm/Chart.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -apiVersion: v1 -appVersion: "1.0" -description: A Helm chart for Bayernid-Proxy -name: bayernid-proxy -version: 0.0.0-MANAGED-BY-JENKINS -icon: https://simpleicons.org/icons/helm.svg diff --git a/nachrichten-bayernid-proxy/src/main/helm/templates/_helpers.tpl b/nachrichten-bayernid-proxy/src/main/helm/templates/_helpers.tpl deleted file mode 100644 index 0ea6c8d8c9dd30157cc593c949f47a7be8a738a2..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/main/helm/templates/_helpers.tpl +++ /dev/null @@ -1,47 +0,0 @@ - -{{/* Default Labels: Helm recommended best-practice labels https://helm.sh/docs/chart_best_practices/labels/ */}} -{{- define "app.defaultLabels" }} -app.kubernetes.io/instance: bayernid-proxy -app.kubernetes.io/managed-by: {{ .Release.Service }} -app.kubernetes.io/name: {{ .Release.Name }} -app.kubernetes.io/namespace: {{ .Release.Namespace }} -app.kubernetes.io/part-of: ozgcloud -app.kubernetes.io/version: {{ .Chart.Version }} -helm.sh/chart: {{ printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" }} -app.kubernetes.io/component: bayernid-proxy -component: bayernid-proxy -{{- end -}} - -{{- define "app.matchLabels" }} -app.kubernetes.io/name: {{ .Release.Name }} -app.kubernetes.io/namespace: {{ .Release.Namespace }} -component: bayernid-proxy -{{- end -}} - -{{- define "app.envSpringProfiles" }} -{{- if (.Values.env).overrideSpringProfiles -}} -{{ printf "%s" (.Values.env).overrideSpringProfiles }} -{{- else -}} -{{ printf "oc, %s" (include "app.ozgcloudEnvironment" . ) }} -{{- end -}} -{{- end -}} - -{{- define "app.ozgcloudEnvironment" -}} -{{- required "ozgcloud.environment muss angegeben sein" (.Values.ozgcloud).environment -}} -{{- end -}} - - -{{ define "app.zertifikatPath" }} -{{- required "ozgcloud zertifikat path muss angegeben sein" (.Values.ozgcloud).bayernid.zertifikat.path -}} -{{- end -}} - - -{{ define "app.zertifikatFilename" }} -{{- required "ozgcloud zertifikat fileName muss angegeben sein" (.Values.ozgcloud).bayernid.zertifikat.fileName -}} -{{- end -}} - - -{{- define "app.serviceAccountName" -}} -{{ printf "%s" ( (.Values.serviceAccount).name | default "bayernid-proxy-service-account" ) }} -{{- end -}} - diff --git a/nachrichten-bayernid-proxy/src/main/helm/templates/configmap_bindings_type.yaml b/nachrichten-bayernid-proxy/src/main/helm/templates/configmap_bindings_type.yaml deleted file mode 100644 index d56b2505d154567012dff38fe9ef5b50887b45a5..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/main/helm/templates/configmap_bindings_type.yaml +++ /dev/null @@ -1,32 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -apiVersion: v1 -kind: ConfigMap -metadata: - name: bindings-type - namespace: {{ .Release.Namespace }} -data: - type: | - ca-certificates \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/main/helm/templates/deployment.yaml b/nachrichten-bayernid-proxy/src/main/helm/templates/deployment.yaml deleted file mode 100644 index b3169c97d56ffc2da535e79f0c7f929a69f2f07d..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/main/helm/templates/deployment.yaml +++ /dev/null @@ -1,166 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ .Release.Name }} - namespace: {{ .Release.Namespace }} - labels: - {{- include "app.defaultLabels" . | indent 4 }} -spec: - progressDeadlineSeconds: 600 - replicas: {{ .Values.replicaCount }} - revisionHistoryLimit: 10 - selector: - matchLabels: - {{- include "app.matchLabels" . | indent 6 }} - strategy: - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - type: RollingUpdate - template: - metadata: - labels: - {{- include "app.defaultLabels" . | indent 8 }} - spec: - {{- if (.Values.serviceAccount).create }} - serviceAccountName: {{ include "app.serviceAccountName" . }} - {{- end }} - topologySpreadConstraints: - - maxSkew: 1 - topologyKey: kubernetes.io/hostname - whenUnsatisfiable: ScheduleAnyway - labelSelector: - matchLabels: - app.kubernetes.io/name: {{ .Release.Name }} - containers: - - env: - - name: SERVICE_BINDING_ROOT - value: "/bindings" - - name: spring_profiles_active - value: {{ include "app.envSpringProfiles" . }} - - {{- with (.Values.env).customList }} -{{ toYaml . | indent 10 }} - {{- end }} - - - name: ozgcloud_bayernid_server - value: {{ required "ozgcloud.bayernid.server must be set" (.Values.ozgcloud).bayernid.server }} - - - name: spring_ssl_bundle_jks_bayern-id-ca_keystore_location - value: "/keystore/bayernid/bayern-id-ca.p12" - - name: spring_ssl_bundle_jks_bayern-id-ca_keystore_type - value: PKCS12 - - name: spring_ssl_bundle_jks_bayern-id-ca_keystore_password - valueFrom: - secretKeyRef: - name: {{ required "ozgcloud.bayernid.certificateSecretName must be set" ((.Values.ozgcloud).bayernid).certificateSecretName }} - key: password - optional: false - - image: "{{ .Values.image.repo }}/{{ .Values.image.name }}:{{ coalesce (.Values.image).tag "latest" }}" - imagePullPolicy: Always - name: bayernid-proxy - ports: - - containerPort: 9090 - name: grpc-9090 - protocol: TCP - - containerPort: 8081 - name: metrics - protocol: TCP - readinessProbe: - failureThreshold: 3 - httpGet: - path: /actuator/health/readiness - port: 8081 - scheme: HTTP - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 3 - startupProbe: - httpGet: - path: /actuator/health/readiness - port: 8081 - scheme: HTTP - failureThreshold: 10 - initialDelaySeconds: 20 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - resources: - {{- with .Values.resources }} -{{ toYaml . | indent 10 }} - {{- end }} - securityContext: - allowPrivilegeEscalation: false - privileged: false - readOnlyRootFilesystem: false - runAsNonRoot: true - {{- with (.Values.securityContext).runAsUser }} - runAsUser: {{ . }} - {{- end }} - {{- with (.Values.securityContext).runAsGroup }} - runAsGroup: {{ . }} - {{- end }} - stdin: true - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - tty: true - volumeMounts: - - name: bindings - mountPath: "/bindings/ca-certificates/type" - subPath: type - readOnly: true - - name: bayern-id-ca - mountPath: "/keystore/bayernid/bayern-id-ca.p12" - subPath: zertifikat - readOnly: true - - name: temp-dir - mountPath: "/tmp" - - volumes: - - name: bindings - configMap: - name: bindings-type - - name: bayern-id-ca - secret: - secretName: {{ required "ozgcloud.bayernid.certificateSecretName must be set" ((.Values.ozgcloud).bayernid).certificateSecretName }} - optional: false - - name: temp-dir - emptyDir: {} - dnsConfig: {} - dnsPolicy: ClusterFirst - imagePullSecrets: - - name: {{ required "imagePullSecret must be set" .Values.imagePullSecret }} - - restartPolicy: Always - {{- with .Values.hostAliases }} - hostAliases: -{{ toYaml . | indent 8 }} - {{- end }} - schedulerName: default-scheduler - securityContext: {} - terminationGracePeriodSeconds: 30 diff --git a/nachrichten-bayernid-proxy/src/main/helm/templates/network_policy.yaml b/nachrichten-bayernid-proxy/src/main/helm/templates/network_policy.yaml deleted file mode 100644 index 95cd70f64a419cc1e585a2f977f48d45aae0eaee..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/main/helm/templates/network_policy.yaml +++ /dev/null @@ -1,72 +0,0 @@ -# -# 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. -# - -{{- if not (.Values.networkPolicy).disabled }} -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: network-policy-bayernid-proxy - namespace: {{ .Release.Namespace }} -spec: - podSelector: - matchLabels: - component: bayernid-proxy - policyTypes: - - Ingress - - Egress - ingress: - - ports: - - port: 9090 - from: - - podSelector: - matchLabels: - component: vorgang-manager -{{- with (.Values.networkPolicy).additionalIngressConfig }} -{{ toYaml . | indent 2 }} -{{- end }} -{{- with (.Values.networkPolicy).additionalIngressConfigNamespace }} -{{ toYaml . | indent 2 }} -{{- end }} - egress: - - to: - - namespaceSelector: - matchLabels: - kubernetes.io/metadata.name: {{ required "networkPolicy.dnsServerNamespace must be set" (.Values.networkPolicy).dnsServerNamespace }} - ports: - - port: 53 - protocol: UDP - - port: 53 - protocol: TCP - - port: 5353 - protocol: UDP - - port: 5353 - protocol: TCP -{{- with (.Values.networkPolicy).additionalEgressConfig }} -{{ toYaml . | indent 2 }} -{{- end }} -{{- with (.Values.networkPolicy).additionalEgressConfigNamespace }} -{{ toYaml . | indent 2 }} -{{- end }} - -{{- end }} \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/main/helm/templates/service.yaml b/nachrichten-bayernid-proxy/src/main/helm/templates/service.yaml deleted file mode 100644 index ed6467de511d8fddec146bd3fb2a96791f7f7a8f..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/main/helm/templates/service.yaml +++ /dev/null @@ -1,42 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -apiVersion: v1 -kind: Service -metadata: - name: {{.Release.Name }} - namespace: {{ .Release.Namespace }} - labels: - {{- include "app.defaultLabels" . | indent 4 }} -spec: - type: ClusterIP - ports: - - name: grpc-9090 - port: 9090 - protocol: TCP - - name: metrics - port: 8081 - protocol: TCP - selector: - {{- include "app.matchLabels" . | indent 4 }} diff --git a/nachrichten-bayernid-proxy/src/main/helm/templates/service_account.yaml b/nachrichten-bayernid-proxy/src/main/helm/templates/service_account.yaml deleted file mode 100644 index 231d53f52dfe67b27f474ebf552d1e10a052f042..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/main/helm/templates/service_account.yaml +++ /dev/null @@ -1,31 +0,0 @@ -# -# 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. -# - -{{- if (.Values.serviceAccount).create }} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "app.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} -{{- end }} \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/main/helm/values.yaml b/nachrichten-bayernid-proxy/src/main/helm/values.yaml deleted file mode 100644 index 7873a672af6bddd71ca66f81988d8a80d5c0b0ca..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/main/helm/values.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# -# Copyright (C) 2022 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. -# - - -replicaCount: 2 - - -image: - repo: docker.ozg-sh.de - name: bayernid-proxy - tag: latest # [default: latest] - - -vorgangmanagerName: vorgang-manager - -imagePullSecret: ozgcloud-image-pull-secret - - diff --git a/nachrichten-bayernid-proxy/src/test/helm-linter-values.yaml b/nachrichten-bayernid-proxy/src/test/helm-linter-values.yaml deleted file mode 100644 index 35e31ef09343dc75bec9ea0fb5712ecaf73382ca..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm-linter-values.yaml +++ /dev/null @@ -1,9 +0,0 @@ -ozgcloud: - environment: test - bayernid: - server: "https://test" - certificateSecretName: "bayernidCertificat" - -networkPolicy: - dnsServerNamespace: test-dns-namespace - diff --git a/nachrichten-bayernid-proxy/src/test/helm/configmap_bindings_type_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/configmap_bindings_type_test.yaml deleted file mode 100644 index e097f3b15d2c12e7043830c5ba2d794302f07da4..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/configmap_bindings_type_test.yaml +++ /dev/null @@ -1,48 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: Certificate ConfigMap Binding -release: - name: vorgang-manager - namespace: sh-helm-test -templates: - - templates/configmap_bindings_type.yaml -tests: - - it: validate configMap values - asserts: - - isKind: - of: ConfigMap - - isAPIVersion: - of: v1 - - equal: - path: metadata.name - value: bindings-type - - equal: - path: metadata.namespace - value: sh-helm-test - - equal: - path: data - value: - type: | - ca-certificates \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_actuator_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_actuator_test.yaml deleted file mode 100644 index 7fc4a5ff86f25c1d2dbda8e2cf0c6c068956e267..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_actuator_test.yaml +++ /dev/null @@ -1,67 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: test deployment actuator -release: - name: bayernid-proxy - namespace: sh-helm-test -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: testIsDeployment - template: deployment.yaml - asserts: - - equal: - path: spec.template.spec.containers[0].readinessProbe - value: - failureThreshold: 3 - httpGet: - path: /actuator/health/readiness - port: 8081 - scheme: HTTP - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 3 - - equal: - path: spec.template.spec.containers[0].startupProbe - value: - httpGet: - path: /actuator/health/readiness - port: 8081 - scheme: HTTP - failureThreshold: 10 - initialDelaySeconds: 20 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - - - - diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_bayernid_certificate_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_bayernid_certificate_test.yaml deleted file mode 100644 index 70bd21da3534b32163c0d61c1e0b24e6e5b993b9..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_bayernid_certificate_test.yaml +++ /dev/null @@ -1,114 +0,0 @@ -# -# 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. -# - -suite: test bayernid certificate -release: - name: bayernid-proxy - namespace: sh-helm-test -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "https://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: should contains bayernid server - asserts: - - contains: - path: spec.template.spec.containers[0].env - content: - name: ozgcloud_bayernid_server - value: "https://test" - - - it: should fail when bayernid server not set - set: - ozgcloud: - environment: dev - bayernid: - server: "" - asserts: - - failedTemplate: - errorMessage: "ozgcloud.bayernid.server must be set" - - - - it: should set variable keystore certificate - asserts: - - contains: - path: spec.template.spec.containers[0].env - content: - name: spring_ssl_bundle_jks_bayern-id-ca_keystore_location - value: /keystore/bayernid/bayern-id-ca.p12 - - - it: should set variable keystore type - asserts: - - contains: - path: spec.template.spec.containers[0].env - content: - name: spring_ssl_bundle_jks_bayern-id-ca_keystore_type - value: PKCS12 - - - it: should set variable keystore password secret reference - asserts: - - contains: - path: spec.template.spec.containers[0].env - content: - name: spring_ssl_bundle_jks_bayern-id-ca_keystore_password - valueFrom: - secretKeyRef: - name: bayernidCertificat - key: password - optional: false - - - it: should fail when secret name for bayernid certificat is not set - set: - ozgcloud: - environment: dev - bayernid: - server: "bayernIdServer" - certificateSecretName: - asserts: - - failedTemplate: - errorMessage: "ozgcloud.bayernid.certificateSecretName must be set" - - - it: should have volumeMount for bayernid certificate keystore - asserts: - - contains: - path: spec.template.spec.containers[0].volumeMounts - content: - name: bayern-id-ca - mountPath: "/keystore/bayernid/bayern-id-ca.p12" - subPath: zertifikat - readOnly: true - - - it: should have volume for bayernid certificate keystore - asserts: - - contains: - path: spec.template.spec.volumes - content: - name: bayern-id-ca - secret: - secretName: bayernidCertificat - optional: false \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_bindings_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_bindings_test.yaml deleted file mode 100644 index cc051bf7be028d28fa6015d6a63ba39af6637da0..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_bindings_test.yaml +++ /dev/null @@ -1,72 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: deployment bayernid-proxy bindings -release: - name: bayernid-proxy - namespace: sh-helm-test -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: should have volumeMounts for temp folder - asserts: - - contains: - path: spec.template.spec.containers[0].volumeMounts - content: - name: temp-dir - mountPath: "/tmp" - - - it: should have volume for temp folder - asserts: - - contains: - path: spec.template.spec.volumes - content: - name: temp-dir - emptyDir: {} - - - it: should have bindings-type volume - asserts: - - contains: - path: spec.template.spec.volumes - content: - name: bindings - configMap: - name: bindings-type - - - it: should have bindings-type volumeMount - asserts: - - contains: - path: spec.template.spec.containers[0].volumeMounts - content: - name: bindings - mountPath: "/bindings/ca-certificates/type" - subPath: type - readOnly: true - \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_container_basic_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_container_basic_test.yaml deleted file mode 100644 index 0da62e9e3341fbf78b3434d257fdf8b2a1fdffc2..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_container_basic_test.yaml +++ /dev/null @@ -1,64 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: test deployment container basics -release: - name: bayernid-proxy - namespace: sh-helm-test -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: should have correct values for container image, name, imagePullPolicy - asserts: - - equal: - path: spec.template.spec.containers[0].image - value: docker.ozg-sh.de/bayernid-proxy:latest - - equal: - path: spec.template.spec.containers[0].name - value: bayernid-proxy - - equal: - path: spec.template.spec.containers[0].imagePullPolicy - value: Always - - it: should have correct values for container ports - asserts: - - contains: - path: spec.template.spec.containers[0].ports - content: - containerPort: 9090 - name: grpc-9090 - protocol: TCP - - contains: - path: spec.template.spec.containers[0].ports - content: - containerPort: 8081 - name: metrics - protocol: TCP - - diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_container_other_values_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_container_other_values_test.yaml deleted file mode 100644 index 8daa93f0c87ba344c70622e885c22a92a461f100..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_container_other_values_test.yaml +++ /dev/null @@ -1,52 +0,0 @@ - - # -# Copyright (C) 2022 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. -# - -suite: test deployment container other values -release: - name: bayernid-proxy - namespace: sh-helm-test -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: should have correct values for container terminationMessagePolicy, terminationMessagePath, stdin, tty - asserts: - - equal: - path: spec.template.spec.containers[0].terminationMessagePolicy - value: File - - equal: - path: spec.template.spec.containers[0].terminationMessagePath - value: /dev/termination-log - - equal: - path: spec.template.spec.containers[0].stdin - value: true - - equal: - path: spec.template.spec.containers[0].tty - value: true \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_container_security_context_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_container_security_context_test.yaml deleted file mode 100644 index 5b6103b0ef2624acd8f70ffab8a370ec28401ba3..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_container_security_context_test.yaml +++ /dev/null @@ -1,69 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: test deployment container security context -release: - name: bayernid-proxy - namespace: sh-helm-test -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: check default values - asserts: - - equal: - path: spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation - value: false - - equal: - path: spec.template.spec.containers[0].securityContext.privileged - value: false - - equal: - path: spec.template.spec.containers[0].securityContext.readOnlyRootFilesystem - value: false - - equal: - path: spec.template.spec.containers[0].securityContext.runAsNonRoot - value: true - - isNull: - path: spec.template.spec.containers[0].securityContext.runAsUser - - isNull: - path: spec.template.spec.containers[0].securityContext.runAsGroup - - it: check runAsUser - set: - securityContext.runAsUser: 1000 - asserts: - - equal: - path: spec.template.spec.containers[0].securityContext.runAsUser - value: 1000 - - it: check runAsGroup - set: - securityContext.runAsGroup: 1000 - asserts: - - equal: - path: spec.template.spec.containers[0].securityContext.runAsGroup - value: 1000 \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_defaults_labels_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_defaults_labels_test.yaml deleted file mode 100644 index 3e4455daed36fc9aadd506f6599b4c9c3a266f33..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_defaults_labels_test.yaml +++ /dev/null @@ -1,75 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: test deployment default labels -release: - name: bayernid-proxy - namespace: sh-helm-test -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: check metadata.labels - asserts: - - equal: - path: metadata.labels - value: - app.kubernetes.io/instance: bayernid-proxy - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: bayernid-proxy - app.kubernetes.io/namespace: sh-helm-test - app.kubernetes.io/part-of: ozgcloud - app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS - helm.sh/chart: bayernid-proxy-0.0.0-MANAGED-BY-JENKINS - app.kubernetes.io/component: bayernid-proxy - component: bayernid-proxy - - - it: should set spec.selector.matchLabels - asserts: - - equal: - path: spec.selector.matchLabels - value: - app.kubernetes.io/name: bayernid-proxy - app.kubernetes.io/namespace: sh-helm-test - component: bayernid-proxy - - - it: should have correct deyploment spec.template.metadata.labels - asserts: - - equal: - path: spec.template.metadata.labels - value: - app.kubernetes.io/instance: bayernid-proxy - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: bayernid-proxy - app.kubernetes.io/namespace: sh-helm-test - app.kubernetes.io/part-of: ozgcloud - app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS - helm.sh/chart: bayernid-proxy-0.0.0-MANAGED-BY-JENKINS - app.kubernetes.io/component: bayernid-proxy - component: bayernid-proxy diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_env_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_env_test.yaml deleted file mode 100644 index f94cc7c236928bbadcecf08ae2bef51a637d23db..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_env_test.yaml +++ /dev/null @@ -1,53 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: test deployment container environments -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "https://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: check customList - set: - env.customList: - - name: my_test_environment_name - value: "A test value" - asserts: - - contains: - path: spec.template.spec.containers[0].env - content: - name: my_test_environment_name - value: "A test value" - - - it: check customList test value is not set by default - asserts: - - notContains: - path: spec.template.spec.containers[0].env - content: - name: my_test_environment_name - value: "A test value" diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_imagepull_secret_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_imagepull_secret_test.yaml deleted file mode 100644 index 69c1d1b6257a53596e6ab523422932fe5d61e41a..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_imagepull_secret_test.yaml +++ /dev/null @@ -1,42 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: test deployment image pull secret -release: - name: bayernid-proxy - namespace: sh-helm-test -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: should use correct imagePull secret - asserts: - - equal: - path: spec.template.spec.imagePullSecrets[0].name - value: ozgcloud-image-pull-secret \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_ozgcloud_base_values_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_ozgcloud_base_values_test.yaml deleted file mode 100644 index 00a0300659c67b9e1927870f63dcf26fe31321ee..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_ozgcloud_base_values_test.yaml +++ /dev/null @@ -1,46 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: test ozgcloud base values -release: - name: bayernid-proxy - namespace: sh-helm-test -templates: - - templates/deployment.yaml - -tests: - - - it: should fail on missing environment - asserts: - - failedTemplate: - errorMessage: ozgcloud.environment muss angegeben sein - - it: should not fail on not missing environment - set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" - asserts: - - notFailedTemplate: {} diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_resources_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_resources_test.yaml deleted file mode 100644 index cb794dac0ffaff7f164ede6eb5193e6dc3ca0743..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_resources_test.yaml +++ /dev/null @@ -1,63 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: test deployment container resources -release: - name: bayernid-proxy -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: should generate resources when values set - set: - resources: - limits: - cpu: 11m - memory: 22Mi - requests: - cpu: 33m - memory: 44Mi - asserts: - - equal: - path: spec.template.spec.containers[0].resources.limits.cpu - value: 11m - - equal: - path: spec.template.spec.containers[0].resources.limits.memory - value: 22Mi - - equal: - path: spec.template.spec.containers[0].resources.requests.cpu - value: 33m - - equal: - path: spec.template.spec.containers[0].resources.requests.memory - value: 44Mi - - it: should not generate resources when values not set - asserts: - - isEmpty: - path: spec.template.spec.containers[0].resources - diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_service_account_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_service_account_test.yaml deleted file mode 100644 index 334d3f74c55057973868eefe40e1977ffe32b7de..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_service_account_test.yaml +++ /dev/null @@ -1,57 +0,0 @@ -# -# 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. -# - -suite: deployment service account -release: - namespace: sh-helm-test -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: should use service account with default name - set: - serviceAccount: - create: true - asserts: - - equal: - path: spec.template.spec.serviceAccountName - value: bayernid-proxy-service-account - - it: should use service account with name - set: - serviceAccount: - create: true - name: helm-service-account - asserts: - - equal: - path: spec.template.spec.serviceAccountName - value: helm-service-account - - it: should use default service account - asserts: - - isNull: - path: spec.template.spec.serviceAccountName \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_springProfile_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_springProfile_test.yaml deleted file mode 100644 index 70df4d35ce94b1fc4cd33fdaf7fd4752e8991435..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_springProfile_test.yaml +++ /dev/null @@ -1,52 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: test deployment spring profiles -release: - name: bayernid-proxy -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: should override spring profiles - set: - env.overrideSpringProfiles: oc,stage,ea - asserts: - - contains: - path: spec.template.spec.containers[0].env - content: - name: spring_profiles_active - value: oc,stage,ea - - it: should generate spring profiles - asserts: - - contains: - path: spec.template.spec.containers[0].env - content: - name: spring_profiles_active - value: oc, dev \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/test/helm/deployment_template_other_values_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deployment_template_other_values_test.yaml deleted file mode 100644 index 9d9aff7d253c6a5151a768ccbe5e38c0ffb2b7fa..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deployment_template_other_values_test.yaml +++ /dev/null @@ -1,81 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: test deployment template other values -release: - name: bayernid-proxy - namespace: sh-helm-test -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" -tests: - - it: should have correct spec.template.spec.topologySpreadConstraints values - asserts: - - contains: - path: spec.template.spec.topologySpreadConstraints - content: - maxSkew: 1 - topologyKey: kubernetes.io/hostname - whenUnsatisfiable: ScheduleAnyway - labelSelector: - matchLabels: - app.kubernetes.io/name: bayernid-proxy - - it: should have correct deployment spec.template.spec.dnsConfig dnsPolicy restartPolicy schedulerName and terminationGracePeriodSeconds values - asserts: - - equal: - path: spec.template.spec.dnsConfig - value: {} - - equal: - path: spec.template.spec.dnsPolicy - value: ClusterFirst - - equal: - path: spec.template.spec.restartPolicy - value: Always - - equal: - path: spec.template.spec.terminationGracePeriodSeconds - value: 30 - - equal: - path: spec.template.spec.schedulerName - value: default-scheduler - - it: should not generate spec.template.spec.hostAlias when values set - set: - hostAliases: test-alias - asserts: - - equal: - path: spec.template.spec.hostAliases - value: test-alias - - - - it: should not generate spec.template.spec.hostAlias when values not set - asserts: - - isNull: - path: spec.template.spec.hostAliases - - - diff --git a/nachrichten-bayernid-proxy/src/test/helm/deyploment_general_value_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/deyploment_general_value_test.yaml deleted file mode 100644 index 53eadc8ef118fcf0177192a5fa14f1cf1fafe6a1..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/deyploment_general_value_test.yaml +++ /dev/null @@ -1,78 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: test deployment general values -release: - name: bayernid-proxy - namespace: sh-helm-test -templates: - - templates/deployment.yaml -set: - ozgcloud: - environment: dev - bayernid: - server: "http://test" - certificateSecretName: "bayernidCertificat" - -tests: - - it: should have correct apiVersion - asserts: - - isKind: - of: Deployment - - isAPIVersion: - of: "apps/v1" - - - - it: should have correct deployment metadata - asserts: - - equal: - path: metadata.name - value: bayernid-proxy - - equal: - path: metadata.namespace - value: sh-helm-test - - - - it: should have correct deyployment general spec values - asserts: - - equal: - path: spec.progressDeadlineSeconds - value: 600 - - equal: - path: spec.replicas - value: 2 - - equal: - path: spec.revisionHistoryLimit - value: 10 - - it: should have correct deployment spec strategy values - asserts: - - equal: - path: spec.strategy - value: - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - type: RollingUpdate - - diff --git a/nachrichten-bayernid-proxy/src/test/helm/network_policy_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/network_policy_test.yaml deleted file mode 100644 index 6942329e62a7ca2a0544cc56d6f3d6d76e9b2120..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/network_policy_test.yaml +++ /dev/null @@ -1,183 +0,0 @@ -# -# 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. -# - -suite: network policy test -release: - namespace: by-helm-test -templates: - - templates/network_policy.yaml -tests: - - it: should match apiVersion - set: - networkPolicy: - dnsServerNamespace: test-dns-namespace - asserts: - - isAPIVersion: - of: networking.k8s.io/v1 - - - it: should match kind - set: - networkPolicy: - dnsServerNamespace: test-dns-namespace - asserts: - - isKind: - of: NetworkPolicy - - - it: should match metadata - set: - networkPolicy: - dnsServerNamespace: test-dns-namespace - asserts: - - equal: - path: metadata - value: - name: network-policy-bayernid-proxy - namespace: by-helm-test - - - it: should generate spec - set: - networkPolicy: - dnsServerNamespace: test-dns-namespace - asserts: - - equal: - path: spec - value: - podSelector: - matchLabels: - component: bayernid-proxy - policyTypes: - - Ingress - - Egress - ingress: - - ports: - - port: 9090 - from: - - podSelector: - matchLabels: - component: vorgang-manager - egress: - - to: - - namespaceSelector: - matchLabels: - kubernetes.io/metadata.name: test-dns-namespace - ports: - - port: 53 - protocol: UDP - - port: 53 - protocol: TCP - - port: 5353 - protocol: UDP - - port: 5353 - protocol: TCP - - - it: should add additionalIngressConfig - set: - networkPolicy: - dnsServerNamespace: test-dns-namespace - additionalIngressConfig: - - from: - - podSelector: - matchLabels: - additionalIngressConfig: yes - asserts: - - contains: - path: spec.ingress - content: - from: - - podSelector: - matchLabels: - additionalIngressConfig: yes - - - it: should add additionalEgressConfig - set: - networkPolicy: - dnsServerNamespace: test-dns-namespace - additionalEgressConfig: - - to: - - podSelector: - matchLabels: - additionalEgressConfig: yes - asserts: - - contains: - path: spec.egress - content: - to: - - podSelector: - matchLabels: - additionalEgressConfig: yes - - - - it: should add additionalIngressConfigNamespace - set: - networkPolicy: - dnsServerNamespace: test-dns-namespace - additionalIngressConfigNamespace: - - from: - - podSelector: - matchLabels: - additionalIngressConfigNamespace: yes - asserts: - - contains: - path: spec.ingress - content: - from: - - podSelector: - matchLabels: - additionalIngressConfigNamespace: yes - - - it: should add additionalEgressConfigNamespace - set: - networkPolicy: - dnsServerNamespace: test-dns-namespace - additionalEgressConfigNamespace: - - to: - - podSelector: - matchLabels: - additionalEgressConfigNamespace: yes - asserts: - - contains: - path: spec.egress - content: - to: - - podSelector: - matchLabels: - additionalEgressConfigNamespace: yes - - - it: test network policy disabled - set: - networkPolicy: - disabled: true - dnsServerNamespace: test-dns-namespace - asserts: - - hasDocuments: - count: 0 - - - it: test network policy unset should be disabled - set: - networkPolicy: - disabled: false - dnsServerNamespace: test-dns-namespace - asserts: - - hasDocuments: - count: 1 \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/test/helm/service_account_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/service_account_test.yaml deleted file mode 100644 index 41565540d17ddc7998397ff62407b0e5bdf7c249..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/service_account_test.yaml +++ /dev/null @@ -1,65 +0,0 @@ -# -# 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. -# - -suite: test service account -release: - namespace: sh-helm-test -templates: - - templates/service_account.yaml -tests: - - it: should create service account with default name - set: - serviceAccount: - create: true - asserts: - - isKind: - of: ServiceAccount - - isAPIVersion: - of: v1 - - equal: - path: metadata.name - value: bayernid-proxy-service-account - - equal: - path: metadata.namespace - value: sh-helm-test - - - it: should create service account with name - set: - serviceAccount: - create: true - name: helm-service-account - asserts: - - isKind: - of: ServiceAccount - - equal: - path: metadata.name - value: helm-service-account - - equal: - path: metadata.namespace - value: sh-helm-test - - - it: should not create service account - asserts: - - hasDocuments: - count: 0 \ No newline at end of file diff --git a/nachrichten-bayernid-proxy/src/test/helm/service_test.yaml b/nachrichten-bayernid-proxy/src/test/helm/service_test.yaml deleted file mode 100644 index 533bdd32b941ed3982480d0198f9941b81b80f2f..0000000000000000000000000000000000000000 --- a/nachrichten-bayernid-proxy/src/test/helm/service_test.yaml +++ /dev/null @@ -1,85 +0,0 @@ -# -# Copyright (C) 2022 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. -# - -suite: test service -release: - name: bayernid-proxy - namespace: sh-helm-test -templates: - - templates/service.yaml -tests: - - it: should have the label component with correct value - asserts: - - isKind: - of: Service - - isAPIVersion: - of: v1 - - equal: - path: metadata.labels.component - value: bayernid-proxy - - it: should be of type ClusterIP - asserts: - - equal: - path: spec.type - value: ClusterIP - - it: ports should contain the grpc port - asserts: - - contains: - path: spec.ports - content: - name: grpc-9090 - port: 9090 - protocol: TCP - count: 1 - any: true - - it: ports should contain the metrics port - asserts: - - contains: - path: spec.ports - content: - name: metrics - port: 8081 - protocol: TCP - count: 1 - any: true - - it: selector should contain the component label with correct value - asserts: - - equal: - path: spec.selector.component - value: bayernid-proxy - - - it: selector should contain helm recommended labels name and namespace - asserts: - - equal: - path: spec.selector - value: - app.kubernetes.io/name: bayernid-proxy - app.kubernetes.io/namespace: sh-helm-test - component: bayernid-proxy - - - it: check component label for service - asserts: - - equal: - path: metadata.labels["component"] - value: bayernid-proxy \ No newline at end of file diff --git a/pom.xml b/pom.xml index a1a8be5660daab3995bb0401e72d291af80627d8..efc80ee15cbf7aa94a40ada3a0c756fca767ac24 100644 --- a/pom.xml +++ b/pom.xml @@ -47,7 +47,6 @@ <module>vorgang-manager-command</module> <module>bescheid-manager</module> <module>vorgang-manager-base</module> - <module>nachrichten-bayernid-proxy</module> </modules> <build>