From d9961a9baccaff511662b1aa1de18bdd02f94f5e Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Mon, 21 Sep 2026 11:43:03 +0200 Subject: feat: add switch/routing to send dedicated data to nNGM (#322) --- .../etl/processor/EtlProcessorApplicationTests.kt | 6 ++++-- .../etl/processor/config/AppConfigurationTest.kt | 21 +++++++++++++++++++++ .../services/RequestServiceIntegrationTest.kt | 15 ++++++--------- 3 files changed, 31 insertions(+), 11 deletions(-) (limited to 'src/integrationTest') diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt index 9f1e183..d54c0bf 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt @@ -24,6 +24,8 @@ import dev.dnpm.etl.processor.monitoring.RequestRepository import dev.dnpm.etl.processor.monitoring.RequestStatus import dev.dnpm.etl.processor.output.DnpmV2MtbFileRequest import dev.dnpm.etl.processor.output.MtbFileSender +import dev.dnpm.etl.processor.output.RestDipMtbFileSender +import dev.dnpm.etl.processor.output.RestMtbFileSender import dev.pcvolkmer.mv64e.model.Coding import dev.pcvolkmer.mv64e.model.ConsentProvisionType import dev.pcvolkmer.mv64e.model.ModelProjectConsentPurpose @@ -57,7 +59,7 @@ import tools.jackson.databind.json.JsonMapper @Testcontainers @ExtendWith(SpringExtension::class) @SpringBootTest -@MockitoBean(types = [MtbFileSender::class]) +@MockitoBean(types = [RestMtbFileSender::class]) @TestPropertySource( properties = [ @@ -91,7 +93,7 @@ class EtlProcessorApplicationTests : AbstractTestcontainerTest() { ) inner class TransformationTest { - @MockitoBean private lateinit var mtbFileSender: MtbFileSender + @MockitoBean private lateinit var mtbFileSender: RestMtbFileSender private lateinit var mockMvc: MockMvc private lateinit var jsonMapper: JsonMapper diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt index 8052ed2..f2bfd90 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt @@ -29,6 +29,8 @@ import dev.dnpm.etl.processor.input.KafkaInputListener import dev.dnpm.etl.processor.monitoring.RequestRepository import dev.dnpm.etl.processor.output.KafkaMtbFileSender import dev.dnpm.etl.processor.output.RestDipMtbFileSender +import dev.dnpm.etl.processor.output.RestNngmMtbFileSender +import dev.dnpm.etl.processor.output.RoutedRestNngmMtbFileSender import dev.dnpm.etl.processor.pseudonym.AnonymizingGenerator import dev.dnpm.etl.processor.pseudonym.GpasPseudonymGenerator import dev.dnpm.etl.processor.pseudonym.GpasSoapPseudonymGenerator @@ -61,6 +63,7 @@ import tools.jackson.databind.json.JsonMapper KafkaAutoConfiguration::class, AppKafkaConfiguration::class, AppRestConfiguration::class, + AppRoutedRestConfiguration::class, ConsentEvaluator::class, ], ) @@ -83,6 +86,24 @@ class AppConfigurationTest { assertThrows { context.getBean() } + assertThrows { + context.getBean() + } + } + } + + @Nested + @TestPropertySource(properties = ["app.rest.uri=http://localhost:9000", "app.routing.nngm.uri=http://localhost:9999"]) + inner class AppConfigurationSwitchedRestTest( + private val context: ApplicationContext, + ) { + @Test + fun shouldUseRestMtbFileSenderAndSwitchedNngmFileSender() { + assertThat(context.getBean()).isNotNull + assertThat(context.getBean()).isNotNull + assertThrows { + context.getBean() + } } } diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt index bbade1c..b599134 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt @@ -21,13 +21,9 @@ package dev.dnpm.etl.processor.services import dev.dnpm.etl.processor.* -import dev.dnpm.etl.processor.monitoring.Request -import dev.dnpm.etl.processor.monitoring.RequestRepository -import dev.dnpm.etl.processor.monitoring.RequestStatus -import dev.dnpm.etl.processor.monitoring.RequestType -import dev.dnpm.etl.processor.monitoring.SubmissionType -import dev.dnpm.etl.processor.output.MtbFileSender -import java.time.Instant +import dev.dnpm.etl.processor.monitoring.* +import dev.dnpm.etl.processor.output.RestDipMtbFileSender +import dev.dnpm.etl.processor.output.RestMtbFileSender import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test @@ -39,14 +35,15 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.transaction.annotation.Transactional import org.testcontainers.junit.jupiter.Testcontainers +import java.time.Instant @Testcontainers @ExtendWith(SpringExtension::class) @SpringBootTest @Transactional -@MockitoBean(types = [MtbFileSender::class]) +@MockitoBean(types = [RestMtbFileSender::class]) @TestPropertySource( - properties = ["app.pseudonymize.generator=buildin", "app.rest.uri=http://example.com"] + properties = ["app.pseudonymize.generator=buildin", "app.rest.uri=http://example.com", "app.rest.type=dip"] ) class RequestServiceIntegrationTest : AbstractTestcontainerTest() { -- cgit v1.2.3