summaryrefslogtreecommitdiff
path: root/src/integrationTest/kotlin/dev
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2025-08-15 12:37:42 +0200
committerGitHub2025-08-15 12:37:42 +0200
commit3eb1c79cec3704a5b821377c4df3f8e9f703c8a3 (patch)
treed73809a1a8b28eef3824c2da8db4559f22739ace /src/integrationTest/kotlin/dev
parentbe513f305ae4c632aa567e42e9438f233590ab3f (diff)
feat: check consent for DNPM 2.1 requests (#126)
Co-authored-by: Jakub Lidke <jakub.lidke@uni-marburg.de>
Diffstat (limited to 'src/integrationTest/kotlin/dev')
-rw-r--r--src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt12
-rw-r--r--src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt26
-rw-r--r--src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt30
3 files changed, 36 insertions, 32 deletions
diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt
index 130fea7..1206c99 100644
--- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt
+++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt
@@ -102,6 +102,18 @@ class EtlProcessorApplicationTests : AbstractTestcontainerTest() {
.id("TEST_12345678")
.build()
)
+ .metadata(
+ MvhMetadata
+ .builder()
+ .modelProjectConsent(
+ ModelProjectConsent
+ .builder()
+ .provisions(
+ listOf(Provision.builder().type(ConsentProvision.PERMIT).purpose(ModelProjectConsentPurpose.SEQUENCING).build())
+ ).build()
+ )
+ .build()
+ )
.diagnoses(
listOf(
MtbDiagnosis.builder()
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 9db509c..66b62c8 100644
--- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt
+++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt
@@ -20,8 +20,9 @@
package dev.dnpm.etl.processor.config
import com.fasterxml.jackson.databind.ObjectMapper
-import dev.dnpm.etl.processor.consent.ConsentByMtbFile
+import dev.dnpm.etl.processor.consent.ConsentEvaluator
import dev.dnpm.etl.processor.consent.GicsConsentService
+import dev.dnpm.etl.processor.consent.MtbFileConsentService
import dev.dnpm.etl.processor.input.KafkaInputListener
import dev.dnpm.etl.processor.monitoring.RequestRepository
import dev.dnpm.etl.processor.output.KafkaMtbFileSender
@@ -53,7 +54,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean
AppSecurityConfiguration::class,
KafkaAutoConfiguration::class,
AppKafkaConfiguration::class,
- AppRestConfiguration::class
+ AppRestConfiguration::class,
+ ConsentEvaluator::class
]
)
@MockitoBean(types = [ObjectMapper::class])
@@ -281,7 +283,8 @@ class AppConfigurationTest {
@Nested
@TestPropertySource(
properties = [
- "app.consent.service=GICS"
+ "app.consent.service=GICS",
+ "app.consent.gics.uri=http://localhost:9000",
]
)
inner class AppConfigurationConsentGicsTest(private val context: ApplicationContext) {
@@ -294,26 +297,11 @@ class AppConfigurationTest {
}
@Nested
- @TestPropertySource(
- properties = [
- "app.consent.gics.enabled=true"
- ]
- )
- inner class AppConfigurationConsentGicsEnabledTest(private val context: ApplicationContext) {
-
- @Test
- fun shouldUseConfiguredGenerator() {
- assertThat(context.getBean(GicsConsentService::class.java)).isNotNull
- }
-
- }
-
- @Nested
inner class AppConfigurationConsentBuildinTest(private val context: ApplicationContext) {
@Test
fun shouldUseConfiguredGenerator() {
- assertThat(context.getBean(ConsentByMtbFile::class.java)).isNotNull
+ assertThat(context.getBean(MtbFileConsentService::class.java)).isNotNull
}
}
diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt
index 78bdc8f..5f2d7ca 100644
--- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt
+++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt
@@ -20,11 +20,11 @@
package dev.dnpm.etl.processor.input
import com.fasterxml.jackson.databind.ObjectMapper
-import dev.dnpm.etl.processor.anyValueClass
import dev.dnpm.etl.processor.config.AppSecurityConfiguration
-import dev.dnpm.etl.processor.consent.ConsentByMtbFile
+import dev.dnpm.etl.processor.consent.ConsentEvaluation
+import dev.dnpm.etl.processor.consent.ConsentEvaluator
+import dev.dnpm.etl.processor.consent.MtbFileConsentService
import dev.dnpm.etl.processor.consent.TtpConsentStatus
-import dev.dnpm.etl.processor.consent.IGetConsent
import dev.dnpm.etl.processor.security.TokenRepository
import dev.dnpm.etl.processor.security.UserRoleRepository
import dev.dnpm.etl.processor.services.RequestProcessor
@@ -57,32 +57,37 @@ import java.util.*
classes = [
MtbFileRestController::class,
AppSecurityConfiguration::class,
- ConsentByMtbFile::class, IGetConsent::class
+ MtbFileConsentService::class
]
)
-@MockitoBean(types = [TokenRepository::class, RequestProcessor::class])
+@MockitoBean(types = [TokenRepository::class, RequestProcessor::class, ConsentEvaluator::class])
@TestPropertySource(
properties = [
"app.pseudonymize.generator=BUILDIN",
"app.security.admin-user=admin",
"app.security.admin-password={noop}very-secret",
- "app.security.enable-tokens=true",
- "app.consent.gics.enabled=false"
+ "app.security.enable-tokens=true"
]
)
class MtbFileRestControllerTest {
- private lateinit var mockMvc: MockMvc
-
- private lateinit var requestProcessor: RequestProcessor
+ lateinit var mockMvc: MockMvc
+ lateinit var requestProcessor: RequestProcessor
+ lateinit var consentEvaluator: ConsentEvaluator
@BeforeEach
fun setup(
@Autowired mockMvc: MockMvc,
- @Autowired requestProcessor: RequestProcessor
+ @Autowired requestProcessor: RequestProcessor,
+ @Autowired consentEvaluator: ConsentEvaluator
) {
this.mockMvc = mockMvc
this.requestProcessor = requestProcessor
+ this.consentEvaluator = consentEvaluator
+
+ doAnswer {
+ ConsentEvaluation(TtpConsentStatus.BROAD_CONSENT_GIVEN, true)
+ }.whenever(consentEvaluator).check(any())
}
@Test
@@ -167,8 +172,7 @@ class MtbFileRestControllerTest {
"app.security.admin-user=admin",
"app.security.admin-password={noop}very-secret",
"app.security.enable-tokens=true",
- "app.security.enable-oidc=true",
- "app.consent.gics.enabled=false"
+ "app.security.enable-oidc=true"
]
)
inner class WithOidcEnabled {