diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/status/StatusChangedEvent.java b/vorgang-manager-command/src/main/java/de/ozgcloud/command/status/StatusChangedEvent.java similarity index 90% rename from vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/status/StatusChangedEvent.java rename to vorgang-manager-command/src/main/java/de/ozgcloud/command/status/StatusChangedEvent.java index bd7793d27b2c93963baf34d2ffbb19e7628d9a81..ae1c537bd46a3b7a116199de630737f40a1fe55f 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/status/StatusChangedEvent.java +++ b/vorgang-manager-command/src/main/java/de/ozgcloud/command/status/StatusChangedEvent.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.vorgang.status; +package de.ozgcloud.command.status; import de.ozgcloud.command.Command; import de.ozgcloud.command.CommandExecutedEvent; @@ -30,11 +30,11 @@ public class StatusChangedEvent extends CommandExecutedEvent { private static final long serialVersionUID = 1L; - StatusChangedEvent(Command command) { + public StatusChangedEvent(Command command) { this(command.getId()); } - StatusChangedEvent(String commandId) { + public StatusChangedEvent(String commandId) { super(commandId); } } diff --git a/vorgang-manager-server/pom.xml b/vorgang-manager-server/pom.xml index f3ffcf7c76aa21ffbdd172e39754dbeb9980ef82..5871e80075933b8470ce982cec30be45fa74726b 100644 --- a/vorgang-manager-server/pom.xml +++ b/vorgang-manager-server/pom.xml @@ -393,8 +393,6 @@ <configuration> <mainClass>de.ozgcloud.vorgang.VorgangManagerServerApplication</mainClass> <image> - <!-- cann be removed when common-lib > 2.3.2--> - <builder>paketobuildpacks/builder-jammy-base</builder> <env> <BPE_DELIM_JAVA_TOOL_OPTIONS xml:space="preserve"> </BPE_DELIM_JAVA_TOOL_OPTIONS> <BPE_APPEND_JAVA_TOOL_OPTIONS>-Dfile.encoding=UTF-8</BPE_APPEND_JAVA_TOOL_OPTIONS> @@ -405,7 +403,6 @@ </image> <profiles> <profile>local</profile> - <profile>bayernlocal</profile> </profiles> </configuration> </plugin> diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/common/search/SearchEventListener.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/common/search/SearchEventListener.java index 66e4dea6c8edf75718092f3d28abb9fbec004c31..608b1eb09b1e526526eb4127a44a04c0c1cf3f1c 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/common/search/SearchEventListener.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/common/search/SearchEventListener.java @@ -34,8 +34,8 @@ import org.springframework.stereotype.Component; import de.ozgcloud.command.Command; import de.ozgcloud.command.VorgangAssignedEvent; import de.ozgcloud.command.VorgangCreatedEvent; +import de.ozgcloud.command.status.StatusChangedEvent; import de.ozgcloud.vorgang.command.CommandService; -import de.ozgcloud.vorgang.status.StatusChangedEvent; import de.ozgcloud.vorgang.vorgang.SetAktenzeichenCompletedEvent; import de.ozgcloud.vorgang.vorgang.VorgangDeletedEvent; import de.ozgcloud.vorgang.vorgang.VorgangService; diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/status/StatusService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/status/StatusService.java index f6452bce3effdf18e3f64073b7740adc97990867..a87a9901cf0418b8a55306b51c878b4902800888 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/status/StatusService.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/status/StatusService.java @@ -36,6 +36,7 @@ import org.springframework.stereotype.Service; import de.ozgcloud.command.Command; import de.ozgcloud.command.CommandFailedEvent; import de.ozgcloud.command.CommandRevokedEvent; +import de.ozgcloud.command.status.StatusChangedEvent; import de.ozgcloud.common.errorhandling.TechnicalException; import de.ozgcloud.vorgang.command.PersistedCommand; import de.ozgcloud.vorgang.vorgang.Vorgang; diff --git a/vorgang-manager-server/src/main/resources/application-bridge.yml b/vorgang-manager-server/src/main/resources/application-bridge.yml new file mode 100644 index 0000000000000000000000000000000000000000..c39258608354670502954373ce6606acf012d1ba --- /dev/null +++ b/vorgang-manager-server/src/main/resources/application-bridge.yml @@ -0,0 +1,8 @@ +ozgcloud: + processors: + - name: bridge + address: http://localhost:8080/process + transferAttachments: true + forms: + - formEngineName: FormSolutions + formId: 8MB Anhang \ No newline at end of file diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/document/bescheid/BescheidITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/document/bescheid/BescheidITCase.java index 2ab3074d28285281022fc60a97c55056c8a2fb5b..0d8646d96ad38ddccfade1944d12b61c2a1900a9 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/document/bescheid/BescheidITCase.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/document/bescheid/BescheidITCase.java @@ -55,6 +55,7 @@ import de.ozgcloud.apilib.user.OzgCloudUserProfile; import de.ozgcloud.apilib.user.OzgCloudUserProfileService; import de.ozgcloud.command.Command; import de.ozgcloud.command.CommandStatus; +import de.ozgcloud.command.status.StatusChangedEvent; import de.ozgcloud.common.test.DataITCase; import de.ozgcloud.document.BescheidDocumentCreatedEvent; import de.ozgcloud.document.Document; @@ -74,7 +75,6 @@ import de.ozgcloud.vorgang.command.CommandService; import de.ozgcloud.vorgang.command.CreateCommandRequest; import de.ozgcloud.vorgang.files.OzgCloudFile; import de.ozgcloud.vorgang.servicekonto.ServiceKontoTestFactory; -import de.ozgcloud.vorgang.status.StatusChangedEvent; import de.ozgcloud.vorgang.vorgang.Vorgang; import de.ozgcloud.vorgang.vorgang.VorgangTestFactory; diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/document/bescheid/TestEventListener.java b/vorgang-manager-server/src/test/java/de/ozgcloud/document/bescheid/TestEventListener.java index 9267814b32ebf1dda948e57989fb958f3f5a00db..83021d97f8300e93853bdfe444057380e0893774 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/document/bescheid/TestEventListener.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/document/bescheid/TestEventListener.java @@ -26,8 +26,8 @@ package de.ozgcloud.document.bescheid; import org.springframework.context.event.EventListener; import de.ozgcloud.command.CommandFailedEvent; +import de.ozgcloud.command.status.StatusChangedEvent; import de.ozgcloud.document.BescheidDocumentCreatedEvent; -import de.ozgcloud.vorgang.status.StatusChangedEvent; class TestEventListener { diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/processor/ProcessorITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/processor/ProcessorITCase.java deleted file mode 100644 index d1744dcdccc0ac0f177caed45104ac28594f358c..0000000000000000000000000000000000000000 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/processor/ProcessorITCase.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (C) 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. - */ -package de.ozgcloud.processor; - -import static org.assertj.core.api.Assertions.*; -import static org.awaitility.Awaitility.*; -import static org.mockito.ArgumentMatchers.*; -import static org.mockito.Mockito.*; - -import java.time.ZonedDateTime; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.TimeUnit; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.context.ApplicationEventPublisher; -import org.springframework.test.annotation.DirtiesContext; - -import de.ozgcloud.command.CommandStatus; -import de.ozgcloud.command.VorgangCreatedEvent; -import de.ozgcloud.common.test.ITCase; -import de.ozgcloud.notification.postfach.PostfachService; -import de.ozgcloud.notification.user.UserNotificationEventListener; -import de.ozgcloud.processor.processor.ProcessorService; -import de.ozgcloud.processor.vorgang.Vorgang; -import de.ozgcloud.processor.vorgang.VorgangId; -import de.ozgcloud.processor.vorgang.VorgangService; -import de.ozgcloud.vorgang.VorgangManagerServerApplication; -import de.ozgcloud.vorgang.callcontext.WithMockCustomUser; -import de.ozgcloud.vorgang.command.CommandService; -import de.ozgcloud.vorgang.command.CreateCommandRequest; -import de.ozgcloud.vorgang.command.PersistedCommand; -import de.ozgcloud.vorgang.vorgang.VorgangTestFactory; - -@SpringBootTest(properties = { - "ozgcloud.processors.0.name=test", - "ozgcloud.processors.0.address=http://localhost:8090/testprocessor", - "ozgcloud.processors.0.forms.0.formEngineName=testFormEngine", - "ozgcloud.processors.0.forms.0.formId=testForm", - "grpc.server.in-process-name=test", - "ozgcloud.command-manager.address=in-process:test", -}, classes = { VorgangManagerServerApplication.class }) -@WithMockCustomUser -@ITCase -@DirtiesContext -class ProcessorITCase { - - @Autowired - private ApplicationEventPublisher publisher; - - @MockBean - private VorgangService processorVorgangService; - - @MockBean - private PostfachService postfachService; - @MockBean - private de.ozgcloud.notification.vorgang.VorgangService notificationService; - @MockBean - private UserNotificationEventListener userNotificationEventListener; - - @MockBean - private CommandService commandService; - @MockBean - private ProcessorService processorService; - - @Captor - private ArgumentCaptor<CreateCommandRequest> requestCaptor; - - @BeforeEach - void init() { - when(processorVorgangService.getVorgang(any())).thenReturn(buildVorgang()); - - when(notificationService.getVorgang(any())).thenReturn(de.ozgcloud.notification.vorgang.Vorgang.builder().build()); - - when(processorService.processVorgang(any())).thenThrow(RuntimeException.class); - } - - @BeforeEach - void setupCommandService() { - var commandBuilder = PersistedCommand.builder().id("42").status(CommandStatus.PENDING).createdAt(ZonedDateTime.now()); - - when(commandService.createCommand(any())).thenReturn(commandBuilder.build()); - when(commandService.findById("42")) - .thenReturn(Optional.of(commandBuilder.status(CommandStatus.FINISHED).finishedAt(ZonedDateTime.now()).build())); - } - - @Test - void triggerProcessorOnNewVorgang() { - publisher.publishEvent(new VorgangCreatedEvent(VorgangTestFactory.ID)); - - await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> { - verify(processorVorgangService).getVorgang(any()); - verify(commandService).createCommand(requestCaptor.capture()); - }); - - var request = requestCaptor.getValue(); - @SuppressWarnings("unchecked") - Map<String, Object> item = (Map<String, Object>) request.getBodyObject().get("item"); - assertThat(item).containsEntry("text", "Es ist eine Fehler bei der Verarbeitung des Vorganges aufgetreten"); - } - - private Vorgang buildVorgang() { - return Vorgang.builder() - .id(VorgangId.from(VorgangTestFactory.ID)) - .formEngineName("testFormEngine") - .formId("testForm") - .build(); - } -} diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/common/search/SearchEventListenerTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/common/search/SearchEventListenerTest.java index ce2e2a04853ef6c2a46f176d11b7de95a49523f6..441fbc3d75a2d720ec80a1e2115b1afea359d4fc 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/common/search/SearchEventListenerTest.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/common/search/SearchEventListenerTest.java @@ -39,9 +39,9 @@ import org.mockito.Mock; import de.ozgcloud.command.Command; import de.ozgcloud.command.VorgangAssignedEvent; import de.ozgcloud.command.VorgangCreatedEvent; +import de.ozgcloud.command.status.StatusChangedEvent; import de.ozgcloud.vorgang.command.CommandService; import de.ozgcloud.vorgang.command.CommandTestFactory; -import de.ozgcloud.vorgang.status.StatusChangedEvent; import de.ozgcloud.vorgang.vorgang.SetAktenzeichenCompletedEvent; import de.ozgcloud.vorgang.vorgang.Vorgang; import de.ozgcloud.vorgang.vorgang.VorgangDeletedEvent; diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/status/StatusServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/status/StatusServiceTest.java index 45f79924ef8081785193cefff2d6661920964f02..17e4694ec99c33cd92c2a8f61a07e36d3d26045e 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/status/StatusServiceTest.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/status/StatusServiceTest.java @@ -42,6 +42,7 @@ import org.springframework.context.ApplicationEventPublisher; import de.ozgcloud.command.Command; import de.ozgcloud.command.CommandFailedEvent; import de.ozgcloud.command.CommandRevokedEvent; +import de.ozgcloud.command.status.StatusChangedEvent; import de.ozgcloud.common.errorhandling.TechnicalException; import de.ozgcloud.vorgang.command.CommandTestFactory; import de.ozgcloud.vorgang.command.PersistedCommand; diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangEventListenerITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangEventListenerITCase.java index 7cd7cdf68a49949515e391f8dbc051ca8a6ea447..cbf4816db9bb60a6febf632c9be1420a932b8b56 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangEventListenerITCase.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangEventListenerITCase.java @@ -35,14 +35,12 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.context.ApplicationEventPublisher; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import de.ozgcloud.apilib.vorgang.OzgCloudVorgangService; import de.ozgcloud.command.Command; import de.ozgcloud.command.CommandCreatedEvent; -import de.ozgcloud.command.VorgangCreatedEvent; import de.ozgcloud.common.test.ITCase; import de.ozgcloud.notification.antragsteller.AntragstellerNotificationEventListener; import de.ozgcloud.notification.user.UserNotificationEventListener; @@ -50,7 +48,6 @@ import de.ozgcloud.processor.ProcessorManagerConfiguration; import de.ozgcloud.processor.processor.ProcessorService; import de.ozgcloud.processor.vorgang.ProcessorVorgangMapper; import de.ozgcloud.vorgang.command.CommandCreatedEventTestFactory; -import de.ozgcloud.vorgang.command.CommandService; import de.ozgcloud.vorgang.command.CommandTestFactory; import de.ozgcloud.vorgang.command.Order; import de.ozgcloud.vorgang.files.FileService; @@ -67,28 +64,26 @@ class VorgangEventListenerITCase { @Autowired private ApplicationEventPublisher publisher; - @SpyBean + @MockitoSpyBean private VorgangEventListener listener; - @SpyBean + @MockitoSpyBean private AntragstellerNotificationEventListener antragstellerNotificationEventListener; - @SpyBean + @MockitoSpyBean private UserNotificationEventListener userNotificationEventListener; - @MockBean + @MockitoSpyBean private VorgangService service; - @MockBean + @MockitoSpyBean private VorgangHeaderService vorgangHeaderService; - @MockBean + @MockitoSpyBean private FileService fileService; - @Autowired - private CommandService commandService; - @MockBean - private ProcessorService vorgagnProcessorService; - @MockBean + @MockitoSpyBean + private ProcessorService vorgangProcessorService; + @MockitoSpyBean @Qualifier(ProcessorManagerConfiguration.OZGCLOUD_VORGANG_SERVICE_NAME) private OzgCloudVorgangService ozgCloudVorgangService; - @MockBean + @MockitoSpyBean private ProcessorVorgangMapper processorVorgangMapper; @Nested @@ -108,24 +103,6 @@ class VorgangEventListenerITCase { } - @Nested - class TestOnVorgangCreated { - - @BeforeEach - void init() { - doNothing().when(antragstellerNotificationEventListener).onVorgangCreated(any()); - doNothing().when(userNotificationEventListener).onVorgangCreated(any()); - - } - - @Test - void shouldCallProcessorService() { - publisher.publishEvent(new VorgangCreatedEvent("id")); - - verify(vorgagnProcessorService, timeout(500)).processVorgang(any()); - } - } - @Nested class TestOnSetAktenzeichen {