From 6bb4c73da510024c33d601fa5f4177c62321094a Mon Sep 17 00:00:00 2001 From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de> Date: Mon, 3 Feb 2025 12:45:31 +0100 Subject: [PATCH] keep application context open in tests --- .../java/de/ozgcloud/eingang/xta/XtaRunner.java | 6 ++---- .../eingang/xta/SemantikAdapterITCase.java | 3 +++ .../eingang/xta/XtaApplicationTest.java | 8 ++++++-- .../java/de/ozgcloud/eingang/xta/XtaITCase.java | 17 ++++++++++++----- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java b/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java index 971cdadd..4e04051c 100644 --- a/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java +++ b/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java @@ -35,7 +35,6 @@ import de.ozgcloud.eingang.semantik.SemantikAdapter; import lombok.NonNull; import lombok.extern.log4j.Log4j2; -@Profile({ "!itcase" }) @Log4j2 @Component class XtaRunner implements ApplicationListener<ContextRefreshedEvent> { @@ -45,13 +44,12 @@ class XtaRunner implements ApplicationListener<ContextRefreshedEvent> { @Autowired private SemantikAdapter semantikAdapter; @Autowired - private ConfigurableApplicationContext context; - + private ShutdownService shutdownService; @Override public void onApplicationEvent(ContextRefreshedEvent event) { LOG.info("Fetching XTA Messages"); runGetXtaMessages(); - context.close(); + shutdownService.shutdown(); } void runGetXtaMessages() { diff --git a/src/test/java/de/ozgcloud/eingang/xta/SemantikAdapterITCase.java b/src/test/java/de/ozgcloud/eingang/xta/SemantikAdapterITCase.java index 7d2b295b..b6138a47 100644 --- a/src/test/java/de/ozgcloud/eingang/xta/SemantikAdapterITCase.java +++ b/src/test/java/de/ozgcloud/eingang/xta/SemantikAdapterITCase.java @@ -49,6 +49,9 @@ class SemantikAdapterITCase { @MockitoBean private VorgangService vorgangService; + @MockitoBean + private ShutdownService shutdownService; + @Nested class TestForFim { private final Map<String, Object> excpectedFormDataMap = FimFormDataTestFactory.FORM_DATA_MAP; diff --git a/src/test/java/de/ozgcloud/eingang/xta/XtaApplicationTest.java b/src/test/java/de/ozgcloud/eingang/xta/XtaApplicationTest.java index 7a776014..b5ad0c2b 100644 --- a/src/test/java/de/ozgcloud/eingang/xta/XtaApplicationTest.java +++ b/src/test/java/de/ozgcloud/eingang/xta/XtaApplicationTest.java @@ -23,11 +23,12 @@ */ package de.ozgcloud.eingang.xta; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.bean.override.mockito.MockitoBean; import de.ozgcloud.eingang.Application; @@ -35,9 +36,12 @@ import de.ozgcloud.eingang.Application; @SpringBootTest(classes = Application.class) class XtaApplicationTest { + @MockitoBean + private ShutdownService shutdownService; + @Test void startup() { - // should start without exception; + // should start without exception assertTrue(true); } diff --git a/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java b/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java index ad692202..a8b18a8a 100644 --- a/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java +++ b/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java @@ -44,8 +44,6 @@ import org.mockito.Captor; import org.mockito.Mock; 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.boot.test.mock.mockito.SpyBean; import org.springframework.context.annotation.Bean; import org.springframework.test.context.ActiveProfiles; @@ -58,6 +56,8 @@ import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc.BinaryFileServi import de.ozgcloud.vorgang.vorgang.GrpcEingang; import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub; import io.grpc.Channel; +import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; @SpringBootTest(classes = { Application.class, @@ -66,9 +66,9 @@ import io.grpc.Channel; @ActiveProfiles({ "itcase" }) class XtaITCase { - @SpyBean + @MockitoSpyBean private VorgangRemoteService vorgangRemoteService; - @MockBean + @MockitoBean private VorgangManagerServerResolver resolver; @Mock @@ -83,8 +83,10 @@ class XtaITCase { @Mock private Channel channel; - @MockBean + @MockitoBean private XtaRemoteService xtaRemoteService; + @MockitoBean + private ShutdownService shutdownService; @Captor private ArgumentCaptor<FormData> formDataArgumentCaptor; @@ -114,6 +116,11 @@ class XtaITCase { doReturn("vorgangId(unused)").when(vorgangRemoteService).createVorgang(any(), any(), any(), any()); } + @DisplayName("should shut down context after processing") + void shouldShutdownContextAfterProcessing() { + verify(shutdownService, times(1)).shutdown(); + } + @DisplayName("should have three representations with pdf") @TestZipFileNamesWithPdf void shouldHaveThreeRepresentationsWithPdf(String zipFileName) { -- GitLab