diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl index 9572624be0d4968d2d9c0a10e115e6e8986b6eea..d3319d470a404cdc82ea1f46d66de742c7b4662b 100644 --- a/src/main/helm/templates/_helpers.tpl +++ b/src/main/helm/templates/_helpers.tpl @@ -62,7 +62,7 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} {{- end -}} {{- define "app.grpc_client_user-manager_address" -}} -{{ printf "%s.%s:9000" .Values.usermanagerName .Release.Namespace }} +{{ printf "dns:///%s.%s:9000" .Values.usermanagerName .Release.Namespace }} {{- end -}} {{- define "app.ozgcloud_migration_user-manager_address" -}} @@ -70,7 +70,7 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} {{- end -}} {{- define "app.ozgcloud_vorgangmanager_address" -}} -{{ printf "%s.%s:9090" .Values.vorgangmanagerName .Release.Namespace }} +{{ printf "dns:///%s.%s:9090" .Values.vorgangmanagerName .Release.Namespace }} {{- end -}} {{- define "app.ozgcloud_administration_address" -}} diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index e88c14c204a174430da665ac14e7f91b98bb79a2..ba379a93e17e623cf46bbc3f6e05aa8750eacff8 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -63,6 +63,8 @@ spec: value: "/bindings" - name: spring_profiles_active value: {{ include "app.envSpringProfiles" . }} + - name: ozgcloud_application_address + value: {{ include "app.ozgcloud_vorgangmanager_address" . }} - name: ozgcloud_nachrichten-manager_address value: {{ include "app.ozgcloud_vorgangmanager_address" . }} {{- if .Values.env.ozgcloudAktenzeichen.enabled }} @@ -154,7 +156,11 @@ spec: - name: ozgcloud_user-manager_url value: {{ include "app.ozgcloud_migration_user-manager_address" . }} - name: ozgcloud_zufi-manager_address - value: {{ .Values.zufiManager.address }} + value: {{ (.Values.zufiManager).address }} + - name: grpc_client_zufi-manager_address + value: {{ (.Values.zufiManager).address }} + - name: grpc_client_zufi-manager_negotiationType + value: {{ (.Values.zufiManager).grpcClientNegotiationType }} {{- if not (.Values.database).useExternal }} - name: spring_data_mongodb_uri valueFrom: @@ -230,6 +236,10 @@ spec: - name: ozgcloud_feature_bescheid_kielHackathonRoute value: {{ quote (((.Values.ozgcloud).feature).bescheid).kielHackathonRoute }} {{- end }} + {{- if (((.Values.ozgcloud).notification).eingangsbestaetigung).replyAllowed }} + - name: ozgcloud_notification_eingangsbestaetigung_replyAllowed + value: {{ quote (((.Values.ozgcloud).notification).eingangsbestaetigung).replyAllowed }} + {{- end }} {{- if (.Values.ozgcloud).processors}} {{- range $processor_index, $processor := (.Values.ozgcloud).processors }} diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml index 8cb0da68112456450aafe00a511e2e06c4ccfb01..6a380e033dcf8986792b1e8b8ca9f92a4ab81a0c 100644 --- a/src/main/helm/values.yaml +++ b/src/main/helm/values.yaml @@ -60,7 +60,7 @@ usermanagerName: user-manager administrationName: administration zufiManager: - address: dns://zufi-manager.zufi:9090 + address: dns:///zufi-server.zufi:9090 elasticsearch: certificateSecretName: elasticsearch-certificate diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml index 573afcbdd936a8c2721f1706297fa5fca68f5d16..4d71e36a71fcb5da19e5c6b55afd44ad528bcbd8 100644 --- a/src/test/helm/deployment_env_test.yaml +++ b/src/test/helm/deployment_env_test.yaml @@ -140,4 +140,16 @@ tests: path: spec.template.spec.containers[0].env content: name: ozgcloud_processors_1_forms_0_formEngineName - value: FormSolutions \ No newline at end of file + value: FormSolutions + - it: should have notification properties + set: + ozgcloud: + notification: + eingangsbestaetigung: + replyAllowed: true + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_notification_eingangsbestaetigung_replyAllowed + value: "true" \ No newline at end of file diff --git a/src/test/helm/deployment_grpc_user_manager_address_test.yaml b/src/test/helm/deployment_grpc_user_manager_address_test.yaml index 1e31f050c93476fd389121baed48304cd9b58747..a26e7cb0ceed7622dd361937c32f5074b6e60567 100644 --- a/src/test/helm/deployment_grpc_user_manager_address_test.yaml +++ b/src/test/helm/deployment_grpc_user_manager_address_test.yaml @@ -39,7 +39,7 @@ tests: path: spec.template.spec.containers[0].env content: name: grpc_client_user-manager_address - value: user-manager.sh-helm-test:9000 + value: dns:///user-manager.sh-helm-test:9000 - it: should contain default user-manager grpc negotiationType tls asserts: - contains: diff --git a/src/test/helm/deployment_nachrichten_manager_address_test.yaml b/src/test/helm/deployment_nachrichten_manager_address_test.yaml index b91b3cc5fe1d814a525fc99464add26e746aa617..67887800a93d5637f079a8aaed0ffa08e588a8af 100644 --- a/src/test/helm/deployment_nachrichten_manager_address_test.yaml +++ b/src/test/helm/deployment_nachrichten_manager_address_test.yaml @@ -39,4 +39,4 @@ tests: path: spec.template.spec.containers[0].env content: name: ozgcloud_nachrichten-manager_address - value: vorgang-manager.sh-helm-test:9090 + value: dns:///vorgang-manager.sh-helm-test:9090 diff --git a/src/test/helm/deployment_vorgang_manager_env_test.yaml b/src/test/helm/deployment_vorgang_manager_env_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4626fa9296378d85086ac3e15513241aa785e23d --- /dev/null +++ b/src/test/helm/deployment_vorgang_manager_env_test.yaml @@ -0,0 +1,42 @@ +# +# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: deployment vorgang manager environment +release: + name: vorgang-manager + namespace: by-helm-test +templates: + - templates/deployment.yaml +set: + ozgcloud: + environment: dev + imagePullSecret: test-image-pull-secret +tests: + - it: check if application address is set + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_application_address + value: dns:///vorgang-manager.by-helm-test:9090 \ No newline at end of file diff --git a/src/test/helm/deployment_zufimanager_address_env_test.yaml b/src/test/helm/deployment_zufimanager_address_env_test.yaml index 8a16fc9df3dd161711d0a6803f2383106222cba8..d73c2e5b39e192cfe0f30908ccaa4c2d5d22fe1c 100644 --- a/src/test/helm/deployment_zufimanager_address_env_test.yaml +++ b/src/test/helm/deployment_zufimanager_address_env_test.yaml @@ -22,10 +22,10 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test environments +suite: deployment zufi-manager address environment release: name: vorgang-manager - namespace: sh-helm-test + namespace: by-helm-test templates: - templates/deployment.yaml set: @@ -33,10 +33,51 @@ set: environment: dev imagePullSecret: test-image-pull-secret tests: - - it: check if zufi-manager address is correct + - it: check default zufi-manager address asserts: - contains: path: spec.template.spec.containers[0].env content: name: ozgcloud_zufi-manager_address - value: dns://zufi-manager.zufi:9090 + value: dns:///zufi-server.zufi:9090 + + - it: should set custom zufi-manager address + set: + zufiManager: + address: dns://other.zufi:9090 + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_zufi-manager_address + value: dns://other.zufi:9090 + + - it: check default zufi-manager grpc client address + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: grpc_client_zufi-manager_address + value: dns:///zufi-server.zufi:9090 + + - it: should set custom zufi-manager grpc client address + set: + zufiManager: + address: dns://other.zufi:9090 + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: grpc_client_zufi-manager_address + value: dns://other.zufi:9090 + + - it: check if zufi-manager negotiationType is set + set: + zufiManager: + grpcClientNegotiationType: NOT_DEFAULT + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: grpc_client_zufi-manager_negotiationType + value: NOT_DEFAULT diff --git a/vorgang-manager-server/pom.xml b/vorgang-manager-server/pom.xml index 55cfafa018e951c86d8c55a40e265bf292556ece..28ce20c5b93257f14e18a47c0277ecaa66db2685 100644 --- a/vorgang-manager-server/pom.xml +++ b/vorgang-manager-server/pom.xml @@ -50,7 +50,7 @@ <spring-boot.build-image.imageName>docker.ozg-sh.de/vorgang-manager:build-latest</spring-boot.build-image.imageName> <ozgcloud.license.version>1.3.0</ozgcloud.license.version> - <zufi-manager-interface.version>1.0.0</zufi-manager-interface.version> + <zufi-manager-interface.version>1.4.0-SNAPSHOT</zufi-manager-interface.version> <user-manager-interface.version>2.1.0</user-manager-interface.version> <bescheid-manager.version>1.18.0-SNAPSHOT</bescheid-manager.version> diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangManagerProperties.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangManagerProperties.java new file mode 100644 index 0000000000000000000000000000000000000000..a17f844828bc8983610fab48bced19bbe373363d --- /dev/null +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangManagerProperties.java @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den + * Ministerpräsidenten des Landes Schleswig-Holstein + * Staatskanzlei + * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung + * + * Lizenziert unter der EUPL, Version 1.2 oder - sobald + * diese von der Europäischen Kommission genehmigt wurden - + * Folgeversionen der EUPL ("Lizenz"); + * Sie dürfen dieses Werk ausschließlich gemäß + * dieser Lizenz nutzen. + * Eine Kopie der Lizenz finden Sie hier: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Sofern nicht durch anwendbare Rechtsvorschriften + * gefordert oder in schriftlicher Form vereinbart, wird + * die unter der Lizenz verbreitete Software "so wie sie + * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - + * ausdrücklich oder stillschweigend - verbreitet. + * Die sprachspezifischen Genehmigungen und Beschränkungen + * unter der Lizenz sind dem Lizenztext zu entnehmen. + */ +package de.ozgcloud.vorgang; + +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.application") +public class VorgangManagerProperties { + + @NotBlank + private String address; + +} diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/common/userconfig/UserConfigService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/common/userconfig/UserConfigService.java index b7e0a3b89913ecac2c47e1a9cc9e20649743b46a..8a32bc95d96fa69088182ce7e9627059d3609767 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/common/userconfig/UserConfigService.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/common/userconfig/UserConfigService.java @@ -2,11 +2,15 @@ package de.ozgcloud.vorgang.common.userconfig; import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor public class UserConfigService { - @Autowired - private UserConfigRemoteService userConfigRemoteService; + + private final UserConfigRemoteService userConfigRemoteService; public List<String> getSupportedOrganisationsEinheiten() { return userConfigRemoteService.getSupportedOrganisationsEinheiten(); diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/registry/RegistryScheduler.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/registry/RegistryScheduler.java index 171439dbfbd3f234b2b5801b322cb963379f7972..778f33bf0339e0bf0e0d08b9a2c5806498a37e33 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/registry/RegistryScheduler.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/registry/RegistryScheduler.java @@ -25,29 +25,34 @@ package de.ozgcloud.vorgang.registry; import java.util.concurrent.TimeUnit; -import org.springframework.beans.factory.annotation.Autowired; +import jakarta.annotation.PostConstruct; + import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.context.annotation.Profile; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import de.ozgcloud.vorgang.common.userconfig.UserConfigService; +import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; import net.javacrumbs.shedlock.spring.annotation.SchedulerLock; -@Profile("!itcase") @Component -@ConditionalOnProperty(prefix = "ozgcloud.vorgang-manager", name = { "address" }) +@ConditionalOnProperty(prefix = "ozgcloud.zufi-manager", name = { "address" }) @Log4j2 +@RequiredArgsConstructor class RegistryScheduler { - @Autowired - private RegistryService registryService; - @Autowired - private UserConfigService userConfigService; + private final RegistryService registryService; + + private final UserConfigService userConfigService; + + @PostConstruct + void logInitialization() { + LOG.info("Starting ZuFi registry scheduler"); + } - @Scheduled(fixedDelayString = "${ozgcloud.vorgang-manager.registry.scheduler.fixedDelay:5}", // - initialDelayString = "${ozgcloud.vorgang-manager.registry.scheduler.initialDelay:5}", // + @Scheduled(fixedDelayString = "${ozgcloud.registry.scheduler.fixedDelayMinutes}", + initialDelayString = "${ozgcloud.registry.scheduler.initialDelayMinutes}", timeUnit = TimeUnit.MINUTES) @SchedulerLock(name = "RegistryScheduler") void register() { diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/registry/RegistryService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/registry/RegistryService.java index e2e8475bf30d833e339a9f688503611b2569ff98..028946325fe06593c20f604a94abc1679a2a8d66 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/registry/RegistryService.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/registry/RegistryService.java @@ -1,43 +1,28 @@ package de.ozgcloud.vorgang.registry; import java.util.List; -import java.util.Optional; -import org.apache.commons.collections4.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Service; +import de.ozgcloud.vorgang.VorgangManagerProperties; +import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @Service @Log4j2 +@RequiredArgsConstructor +@ConditionalOnProperty(prefix = "ozgcloud.zufi-manager", name = { "address" }) class RegistryService { - @Value(value = "${ozgcloud.vorgang-manager.address:#{null}}") - private Optional<String> vorgangManagerAddress; - @Autowired - private ZufiRemoteService zufiRemoteService; + private final VorgangManagerProperties vorgangManagerProperties; + private final ZufiRemoteService zufiRemoteService; public void registerVorgangManager(List<String> supportedOrganisationsEinheiten) { - try { - register(supportedOrganisationsEinheiten); - } catch (Exception e) { - LOG.error("Error registering this VorgangsManager.", e); + if (supportedOrganisationsEinheiten.isEmpty()) { + LOG.warn("Missing organisationseinheitenIds. Skipping registration."); + return; } - } - - private void register(List<String> supportedOrganisationsEinheiten) { - if (CollectionUtils.isNotEmpty(supportedOrganisationsEinheiten)) { - registerAddress(supportedOrganisationsEinheiten, vorgangManagerAddress); - } else { - LOG.warn("No OrganistationsEinheitenIds provided. Not registering this VorgangsManager"); - } - } - - void registerAddress(List<String> supportedOrganisationsEinheiten, Optional<String> vorgangManagerAddress) { - vorgangManagerAddress.ifPresentOrElse(address -> { - zufiRemoteService.registerVorgangManager(supportedOrganisationsEinheiten, address); - }, () -> LOG.error("Property ozgcloud.vorgang-manager.address not set. Not registering this VorgangsManager")); + zufiRemoteService.registerVorgangManager(supportedOrganisationsEinheiten, vorgangManagerProperties.getAddress()); } } diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/registry/ZufiRemoteService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/registry/ZufiRemoteService.java index bc436dedd25d7bd9ee4ef1ad95f7cfffb1612e8b..aab5f17c1c67ebe61d6122fb13a3da561628ed6b 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/registry/ZufiRemoteService.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/registry/ZufiRemoteService.java @@ -2,25 +2,29 @@ package de.ozgcloud.vorgang.registry; import java.util.List; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Service; import de.ozgcloud.vorgang.callcontext.VorgangManagerClientCallContextAttachingInterceptor; -import de.ozgcloud.zufi.grpc.registration.GrpcVorgangManagerRegistrationRequest; -import de.ozgcloud.zufi.grpc.registration.VorgangManagerRegistrationServiceGrpc.VorgangManagerRegistrationServiceBlockingStub; +import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcVorgangManagerRegistrationRequest; +import de.ozgcloud.zufi.grpc.organisationseinheit.VorgangManagerRegistrationServiceGrpc.VorgangManagerRegistrationServiceBlockingStub; import lombok.NonNull; import lombok.extern.log4j.Log4j2; import net.devh.boot.grpc.client.inject.GrpcClient; @Log4j2 @Service +@ConditionalOnProperty(prefix = "ozgcloud.zufi-manager", name = { "address" }) class ZufiRemoteService { + @GrpcClient("zufi-manager") private VorgangManagerRegistrationServiceBlockingStub serviceStub; public void registerVorgangManager(@NonNull List<String> organistationsEinheitenIds, String vorgangManagerAddress) { - boolean success = getServiceStub() - .register(buildRequest(organistationsEinheitenIds, vorgangManagerAddress)).getSuccess(); - LOG.info("Register success: " + success); + var result = getServiceStub().register(buildRequest(organistationsEinheitenIds, vorgangManagerAddress)); + if (!result.getSuccess()) { + LOG.warn("Registration failed: {}", result.getMessage()); + } } private VorgangManagerRegistrationServiceBlockingStub getServiceStub() { diff --git a/vorgang-manager-server/src/main/resources/application-local.yml b/vorgang-manager-server/src/main/resources/application-local.yml index c8db7da42667149829fe45e43b61321c1db26723..f6a467f4938cfac669d42e0bbf2c81cfd10d9eb4 100644 --- a/vorgang-manager-server/src/main/resources/application-local.yml +++ b/vorgang-manager-server/src/main/resources/application-local.yml @@ -62,6 +62,8 @@ ozgcloud: sync: enabled: false aktenzeichen: de.ozgcloud.vorgang.vorgang.AktenzeichenProviderEA + application: + address: http://localhost:9090 notification: mail-from: ea@ozg-sh.de redirect: @@ -70,7 +72,7 @@ ozgcloud: url: http://localhost:9092/migration/user user: cleanup: - cron: 0 */5 * * * * + cron: "-" feature: bescheid: enable-dummy-document-processor: true diff --git a/vorgang-manager-server/src/main/resources/application.yml b/vorgang-manager-server/src/main/resources/application.yml index 8a7f433e0a05ebb533601deb502ee464761e2363..1697cdb5328da77748b7d82e6f6dccf27c3dcb36 100644 --- a/vorgang-manager-server/src/main/resources/application.yml +++ b/vorgang-manager-server/src/main/resources/application.yml @@ -42,6 +42,8 @@ grpc: command-manager: address: self:self negotiationType: PLAINTEXT + zufi-manager: + negotiationType: TLS server: security: @@ -77,6 +79,10 @@ ozgcloud: sync: delay: 900_000 production: false + registry: + scheduler: + fixedDelayMinutes: 5 + initialDelayMinutes: 5 osi: postfach: scheduler: diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/registry/GrpcRegistrationResponseTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/registry/GrpcRegistrationResponseTestFactory.java index 7bf1b282a7708c1e16fab1f6f6a71873b5f245bf..831f430ef392061414267c8478689cbe90f1a712 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/registry/GrpcRegistrationResponseTestFactory.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/registry/GrpcRegistrationResponseTestFactory.java @@ -1,6 +1,6 @@ package de.ozgcloud.vorgang.registry; -import de.ozgcloud.zufi.grpc.registration.GrpcVorgangManagerRegistrationResponse; +import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcVorgangManagerRegistrationResponse; public class GrpcRegistrationResponseTestFactory { public static GrpcVorgangManagerRegistrationResponse create() { diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/registry/RegistryServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/registry/RegistryServiceTest.java index 7f5f58b5e47dd5ecb7cf48219f092d42fc1134ad..aaf11c29d09a7e063e209f2b97b070bd7880a303 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/registry/RegistryServiceTest.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/registry/RegistryServiceTest.java @@ -1,25 +1,24 @@ package de.ozgcloud.vorgang.registry; -import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.util.Collections; import java.util.List; -import java.util.Optional; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.Spy; -import org.springframework.test.util.ReflectionTestUtils; + +import de.ozgcloud.vorgang.VorgangManagerProperties; class RegistryServiceTest { + private static final String ORGANISATION_EINHEITEN_ID = "123456"; private static final List<String> ORGANISATION_EINHEITEN_IDS = List.of(ORGANISATION_EINHEITEN_ID); - private static final Optional<String> VORGANG_MANAGER_ADDRESS = Optional.of("address"); + private static final String VORGANG_MANAGER_ADDRESS = "vorgang-manager-address"; @Spy @InjectMocks @@ -27,34 +26,24 @@ class RegistryServiceTest { @Mock private ZufiRemoteService zufiRemoteService; + @Mock + private VorgangManagerProperties vorgangManagerProperties; - @DisplayName("Test registering the VorgangManager") - @Nested - class TestRegistryVorgangManager { - @BeforeEach - void initVorgangManagerAddress() { - ReflectionTestUtils.setField(registryService, "vorgangManagerAddress", VORGANG_MANAGER_ADDRESS); - } - - @Test - void shouldCallZuFiRemoteService() { - registryService.registerVorgangManager(ORGANISATION_EINHEITEN_IDS); - - verify(zufiRemoteService).registerVorgangManager(anyList(), any()); - } + @Test + void shouldCallZuFiRemoteService() { + when(vorgangManagerProperties.getAddress()).thenReturn(VORGANG_MANAGER_ADDRESS); - @Test - void shouldNotCallZuFiRemoteServiceOnEmptyOrganisationsEinheitenIds() { - registryService.registerVorgangManager(Collections.emptyList()); + registryService.registerVorgangManager(ORGANISATION_EINHEITEN_IDS); - verify(zufiRemoteService, never()).registerVorgangManager(anyList(), any()); - } + verify(zufiRemoteService).registerVorgangManager(ORGANISATION_EINHEITEN_IDS, VORGANG_MANAGER_ADDRESS); + } - @Test - void shouldNotCallServiceStub() { - registryService.registerAddress(ORGANISATION_EINHEITEN_IDS, Optional.empty()); + @DisplayName("should not call zufi remote service when organisationseinheitenIds is empty") + @Test + void shouldNotCallRegisterAddress() { + registryService.registerVorgangManager(Collections.emptyList()); - verify(zufiRemoteService, never()).registerVorgangManager(any(), any()); - } + Mockito.verifyNoInteractions(zufiRemoteService); } + } diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/registry/ZufiRemoteServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/registry/ZufiRemoteServiceTest.java index 384ca37218780385c58092d40024998380a4e4c2..a09030f20ec00b66f0edb7d1823874c5a0f41101 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/registry/ZufiRemoteServiceTest.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/registry/ZufiRemoteServiceTest.java @@ -14,8 +14,8 @@ import org.mockito.Mock; import org.mockito.Spy; import de.ozgcloud.vorgang.callcontext.VorgangManagerClientCallContextAttachingInterceptor; -import de.ozgcloud.zufi.grpc.registration.GrpcVorgangManagerRegistrationRequest; -import de.ozgcloud.zufi.grpc.registration.VorgangManagerRegistrationServiceGrpc.VorgangManagerRegistrationServiceBlockingStub; +import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcVorgangManagerRegistrationRequest; +import de.ozgcloud.zufi.grpc.organisationseinheit.VorgangManagerRegistrationServiceGrpc.VorgangManagerRegistrationServiceBlockingStub; class ZufiRemoteServiceTest { private static final String ORGANISATIONS_EINHEITEN_ID = "123456"; diff --git a/vorgang-manager-server/src/test/resources/application-itcase.yml b/vorgang-manager-server/src/test/resources/application-itcase.yml index 9ced8982a28a9b4a2ff2a872fa1f57c15e2ebb47..a9ac195ac3ed2a031ad421adb61d574b2504519c 100644 --- a/vorgang-manager-server/src/test/resources/application-itcase.yml +++ b/vorgang-manager-server/src/test/resources/application-itcase.yml @@ -14,6 +14,8 @@ ozgcloud: administration: sync: enabled: false + application: + address: localhost aktenzeichen: de.ozgcloud.vorgang.vorgang.AktenzeichenProviderEA mongock: