diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java index 7da2c36ae9157cfeec547ac98f8ec6cd9f576f6d..7a98cf91701338396eda4dba01c8e7b71c8751e4 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java @@ -41,7 +41,6 @@ import de.ozgcloud.bescheid.attacheditem.AttachedItemService; import de.ozgcloud.bescheid.binaryfile.BinaryFileService; import de.ozgcloud.bescheid.common.callcontext.CurrentUserService; import de.ozgcloud.bescheid.nachricht.NachrichtService; -import de.ozgcloud.bescheid.smartdocuments.SmartDocumentsProperties; import de.ozgcloud.bescheid.vorgang.VorgangId; import de.ozgcloud.command.Command; import de.ozgcloud.command.CommandCreatedEvent; @@ -95,7 +94,7 @@ class BescheidEventListener { private final ApplicationEventPublisher eventPublisher; private final CurrentUserService userService; - private final Optional<SmartDocumentsProperties> smartDocumentsProperties; + private final BescheidFeatureProperties bescheidFeatureProperties; @EventListener(condition = IS_CREATE_BESCHEID) public void onCreateBescheidCommand(CommandCreatedEvent event) { @@ -103,7 +102,7 @@ class BescheidEventListener { } void doCreateBescheid(Command command) { - if (isKielEnvironment()) { + if (bescheidFeatureProperties.isKielHackathonRoute()) { var bescheid = doCreateBescheidBiz(command); nachrichtService.createNachrichtDraft(bescheid); eventPublisher.publishEvent(new BescheidCreatedEvent(command)); @@ -113,11 +112,6 @@ class BescheidEventListener { eventPublisher.publishEvent(new BescheidCreatedEvent(command, createdItemId)); } - boolean isKielEnvironment() { - Predicate<SmartDocumentsProperties> configuredForKiel = properties -> TEMPLATE_GROUP_KIEL.equals(properties.getTemplateGroup()); - return smartDocumentsProperties.filter(configuredForKiel).isPresent(); - } - @EventListener(condition = IS_DELETE_BESCHEID) public void onDeleteBescheid(CommandCreatedEvent event) { runWithSecurityContext(event.getSource(), this::doDeleteBescheid); diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidFeatureProperties.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidFeatureProperties.java index 538ae8150df7b0214c8a4cfdb619d1cb1cda3305..1b0011890ab72654176613f9dfd31ec1eb41fdc8 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidFeatureProperties.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidFeatureProperties.java @@ -27,11 +27,15 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import lombok.Getter; +import lombok.Setter; @Configuration @ConfigurationProperties(prefix = "ozgcloud.feature.bescheid") @Getter +@Setter public class BescheidFeatureProperties { private boolean storeAsDocument = false; + + private boolean kielHackathonRoute = false; } diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerITCase.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerITCase.java index 3728f3c86ed3f0c2896f428d0ef5b57cabb35dd6..749783d0d6158a3f8bcd3379909abe6e28d9e58c 100644 --- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerITCase.java +++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerITCase.java @@ -26,6 +26,8 @@ class BescheidEventListenerITCase { @Autowired private ApplicationEventPublisher publisher; + @Autowired + private BescheidFeatureProperties bescheidFeatureProperties; @MockBean private BescheidService service; @@ -49,7 +51,12 @@ class BescheidEventListenerITCase { @Nested class TestCreateBescheid { - private Command command = CommandTestFactory.createBuilder().order(BescheidEventListener.CREATE_BESCHEID_ORDER).build(); + private final Command command = CommandTestFactory.createBuilder().order(BescheidEventListener.CREATE_BESCHEID_ORDER).build(); + + @BeforeEach + void init() { + bescheidFeatureProperties.setKielHackathonRoute(true); + } @Test void shouldCallService() { @@ -69,7 +76,7 @@ class BescheidEventListenerITCase { @Nested class TestDeleteBescheid { - private Command command = CommandTestFactory.createBuilder().order(BescheidEventListener.DELETE_BESCHEID_ORDER).build(); + private final Command command = CommandTestFactory.createBuilder().order(BescheidEventListener.DELETE_BESCHEID_ORDER).build(); @Test void shouldCallService() { @@ -89,7 +96,7 @@ class BescheidEventListenerITCase { @Nested class TestUpdateBescheid { - private Command command = CommandTestFactory.createBuilder().order(BescheidEventListener.UPDATE_BESCHEID_ORDER).build(); + private final Command command = CommandTestFactory.createBuilder().order(BescheidEventListener.UPDATE_BESCHEID_ORDER).build(); @Test void shouldCallService() { diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerTest.java index babf3dda4bd227f6fb19bea788f0980c54faaf1a..593195a2ff36a039b2c2ee1d3e65924657d9cacb 100644 --- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerTest.java +++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerTest.java @@ -7,7 +7,6 @@ import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.util.Map; -import java.util.Optional; import java.util.function.Consumer; import org.junit.jupiter.api.Assertions; @@ -22,7 +21,6 @@ import org.mockito.Mock; import org.mockito.Spy; import org.springframework.context.ApplicationEventPublisher; import org.springframework.security.core.context.SecurityContext; -import org.springframework.test.util.ReflectionTestUtils; import de.ozgcloud.bescheid.attacheditem.AttachedItem; import de.ozgcloud.bescheid.attacheditem.AttachedItemService; @@ -32,7 +30,6 @@ import de.ozgcloud.bescheid.common.callcontext.CurrentUserService; import de.ozgcloud.bescheid.common.callcontext.UserProfile; import de.ozgcloud.bescheid.common.callcontext.UserProfileTestFactory; import de.ozgcloud.bescheid.nachricht.NachrichtService; -import de.ozgcloud.bescheid.smartdocuments.SmartDocumentsProperties; import de.ozgcloud.command.Command; import de.ozgcloud.command.CommandCreatedEventTestFactory; import de.ozgcloud.command.CommandFailedEvent; @@ -103,7 +100,7 @@ class BescheidEventListenerTest { @BeforeEach void init() { - doReturn(true).when(listener).isKielEnvironment(); + when(featureProperties.isKielHackathonRoute()).thenReturn(true); } @Test @@ -136,11 +133,6 @@ class BescheidEventListenerTest { @Nested class TestNotKielConfigured { - @BeforeEach - void init() { - doReturn(false).when(listener).isKielEnvironment(); - } - @Test void shouldCallCreateBescheidDraft() { listener.doCreateBescheid(COMMAND); @@ -176,42 +168,6 @@ class BescheidEventListenerTest { } - @Nested - class TestIsKielEnvironment { - - @Mock - private SmartDocumentsProperties smartDocumentsProperties; - - @Test - void shouldReturnTrueIfKiel() { - when(smartDocumentsProperties.getTemplateGroup()).thenReturn("Kiel"); - ReflectionTestUtils.setField(listener, "smartDocumentsProperties", Optional.of(smartDocumentsProperties)); - - var result = listener.isKielEnvironment(); - - assertThat(result).isTrue(); - } - - @Test - void shouldReturnFalseIfNotConfigured() { - ReflectionTestUtils.setField(listener, "smartDocumentsProperties", Optional.empty()); - - var result = listener.isKielEnvironment(); - - assertThat(result).isFalse(); - } - - @Test - void shouldReturnFalseIfNotKiel() { - when(smartDocumentsProperties.getTemplateGroup()).thenReturn("NotKiel"); - ReflectionTestUtils.setField(listener, "smartDocumentsProperties", Optional.of(smartDocumentsProperties)); - - var result = listener.isKielEnvironment(); - - assertThat(result).isFalse(); - } - } - @Nested class TestCreateBescheidRequest { diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index 0464a755bb25b31585354a835303c2d5430e0c76..a214474306bab66d3938489b9d640cff05320762 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -197,6 +197,10 @@ spec: - name: ozgcloud_feature_bescheid_enableDummyDocumentProcessor value: {{ quote (((.Values.ozgcloud).feature).bescheid).enableDummyDocumentProcessor }} {{- end }} + {{- if (((.Values.ozgcloud).feature).bescheid).kielHackathonRoute }} + - name: ozgcloud_feature_bescheid_kielHackathonRoute + value: {{ quote (((.Values.ozgcloud).feature).bescheid).kielHackathonRoute }} + {{- end }} {{- if (.Values.ozgcloud).processors}} {{- range $processor_index, $processor := (.Values.ozgcloud).processors }} diff --git a/src/test/helm/deployment_kiel_hackathon_route_test.yaml b/src/test/helm/deployment_kiel_hackathon_route_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f7879e4739ff4b8a6c67770701492f7210790ce7 --- /dev/null +++ b/src/test/helm/deployment_kiel_hackathon_route_test.yaml @@ -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. +# + +suite: deployment toggle to activate kiel hackathon route +release: + name: vorgang-manager + namespace: sh-helm-test +templates: + - templates/deployment.yaml +set: + imagePullSecret: image-pull-secret + ozgcloud: + environment: dev + feature: + bescheid: + kielHackathonRoute: true +tests: + - it: should enable kiel hackathon toggle + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_feature_bescheid_kielHackathonRoute + value: "true"