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/processor/ProcessorITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/processor/ProcessorITCase.java deleted file mode 100644 index f64cf705e8192d2c5b80844e1031fee48ee91c03..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.context.ApplicationEventPublisher; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.bean.override.mockito.MockitoBean; - -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; - - @MockitoBean - private VorgangService processorVorgangService; - - @MockitoBean - private PostfachService postfachService; - @MockitoBean - private de.ozgcloud.notification.vorgang.VorgangService notificationService; - @MockitoBean - private UserNotificationEventListener userNotificationEventListener; - - @MockitoBean - private CommandService commandService; - @MockitoBean - 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(), anyString())).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(); - } -}