diff options
| author | Paul-Christian Volkmer | 2026-01-21 14:10:32 +0100 |
|---|---|---|
| committer | GitHub | 2026-01-21 13:10:32 +0000 |
| commit | 623eb1b250e03772f0311ea088de2a9a5885df2e (patch) | |
| tree | 294ef9b7108c1a1f3ddedfa2a407e8c9e317764c /src/test/kotlin/dev/dnpm/etl/processor | |
| parent | dd7ad122b0ef97b13cf63c53fcb46403dcb80c5b (diff) | |
feat: always send dataset without consent (#243)
This changes the behavior of the application!
Any dataset will be forwarded to DNPM:DIP, even w/o
valid consent information.
DNPM:DIP will return issues if MV consent or broad
consent is missing.
Diffstat (limited to 'src/test/kotlin/dev/dnpm/etl/processor')
| -rw-r--r-- | src/test/kotlin/dev/dnpm/etl/processor/services/RequestProcessorTest.kt | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/test/kotlin/dev/dnpm/etl/processor/services/RequestProcessorTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/services/RequestProcessorTest.kt index 851c1a1..edd9ffe 100644 --- a/src/test/kotlin/dev/dnpm/etl/processor/services/RequestProcessorTest.kt +++ b/src/test/kotlin/dev/dnpm/etl/processor/services/RequestProcessorTest.kt @@ -23,6 +23,7 @@ import com.fasterxml.jackson.databind.ObjectMapper import dev.dnpm.etl.processor.Fingerprint import dev.dnpm.etl.processor.PatientId import dev.dnpm.etl.processor.PatientPseudonym +import dev.dnpm.etl.processor.RequestId import dev.dnpm.etl.processor.config.AppConfigProperties import dev.dnpm.etl.processor.consent.TtpConsentStatus import dev.dnpm.etl.processor.monitoring.Request @@ -478,6 +479,48 @@ class RequestProcessorTest { assertThat(eventCaptor.firstValue.status).isEqualTo(RequestStatus.SUCCESS) } + @Test + fun testShouldSendRequestWithoutConsent() { + doAnswer { "PSEUDONYM" }.whenever(pseudonymizeService).patientPseudonym(anyValueClass()) + + doAnswer { MtbFileSender.Response(status = RequestStatus.SUCCESS) } + .whenever(sender) + .send(any<DnpmV2MtbFileRequest>()) + + doAnswer { it.arguments.first() } + .whenever(transformationService) + .transform(any<Mtb>()) + + val mtbFile = + Mtb.builder() + .patient(Patient.builder().id("123").build()) + .metadata(MvhMetadata()) + .episodesOfCare( + listOf( + MtbEpisodeOfCare.builder() + .id("1") + .patient(Reference.builder().id("123").build()) + .period( + PeriodDate.builder() + .start(Date.from(Instant.parse("2021-01-01T00:00:00.00Z"))) + .build() + ) + .build() + ) + ) + .build() + + this.requestProcessor.processMtbFile( + mtbFile, + randomRequestId(), + ) + + val eventCaptor = argumentCaptor<ResponseEvent>() + verify(applicationEventPublisher, times(1)).publishEvent(eventCaptor.capture()) + assertThat(eventCaptor.firstValue).isNotNull + assertThat(eventCaptor.firstValue.status).isEqualTo(RequestStatus.SUCCESS) + } + @Test fun testShouldSendDeleteRequestAndSendErrorEvent() { doAnswer { "PSEUDONYM" }.whenever(pseudonymizeService).patientPseudonym(anyValueClass()) |
