diff options
Diffstat (limited to 'src/test/kotlin/dev/dnpm')
3 files changed, 91 insertions, 1 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 edd9ffe..afa6872 100644 --- a/src/test/kotlin/dev/dnpm/etl/processor/services/RequestProcessorTest.kt +++ b/src/test/kotlin/dev/dnpm/etl/processor/services/RequestProcessorTest.kt @@ -23,7 +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.Tan import dev.dnpm.etl.processor.config.AppConfigProperties import dev.dnpm.etl.processor.consent.TtpConsentStatus import dev.dnpm.etl.processor.monitoring.Request @@ -109,6 +109,7 @@ class RequestProcessorTest { RequestType.MTB_FILE, SubmissionType.TEST, RequestStatus.SUCCESS, + Tan.empty(), Instant.parse("2023-08-08T02:00:00Z"), ) } @@ -165,6 +166,7 @@ class RequestProcessorTest { RequestType.MTB_FILE, SubmissionType.TEST, RequestStatus.SUCCESS, + Tan.empty(), Instant.parse("2023-08-08T02:00:00Z"), ) } @@ -221,6 +223,7 @@ class RequestProcessorTest { RequestType.MTB_FILE, SubmissionType.TEST, RequestStatus.SUCCESS, + Tan.empty(), Instant.parse("2023-08-08T02:00:00Z"), ) } @@ -281,6 +284,7 @@ class RequestProcessorTest { RequestType.MTB_FILE, SubmissionType.TEST, RequestStatus.SUCCESS, + Tan.empty(), Instant.parse("2023-08-08T02:00:00Z"), ) } @@ -299,6 +303,10 @@ class RequestProcessorTest { .whenever(pseudonymizeService) .patientPseudonym(anyValueClass()) + doAnswer { "f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2" } + .whenever(pseudonymizeService) + .genomDeTan(anyValueClass()) + doAnswer { it.arguments[0] }.whenever(transformationService).transform(any<Mtb>()) whenever(consentProcessor.consentGatedCheckAndTryEmbedding(any())).thenReturn(true) @@ -360,6 +368,7 @@ class RequestProcessorTest { RequestType.MTB_FILE, SubmissionType.INITIAL, RequestStatus.SUCCESS, + Tan.empty(), Instant.parse("2026-01-05T09:00:00Z"), submissionAccepted = true, ), @@ -372,6 +381,7 @@ class RequestProcessorTest { RequestType.MTB_FILE, SubmissionType.INITIAL, RequestStatus.BLOCKED_INITIAL, + Tan.empty(), Instant.parse("2026-01-05T10:00:00Z"), submissionAccepted = false, ), @@ -393,6 +403,10 @@ class RequestProcessorTest { .whenever(pseudonymizeService) .patientPseudonym(anyValueClass()) + doAnswer { "f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2" } + .whenever(pseudonymizeService) + .genomDeTan(anyValueClass()) + doAnswer { it.arguments[0] }.whenever(transformationService).transform(any<Mtb>()) whenever(consentProcessor.consentGatedCheckAndTryEmbedding(any())).thenReturn(true) @@ -434,6 +448,7 @@ class RequestProcessorTest { verify(sender, times(1)).send(requestCaptor.capture()) assertThat(requestCaptor.firstValue).isNotNull assertThat(requestCaptor.firstValue.content.metadata.type).isEqualTo(MvhSubmissionType.ADDITION) + assertThat(requestCaptor.firstValue.content.metadata.transferTan).isEqualTo("f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2") val eventCaptor = argumentCaptor<ResponseEvent>() verify(applicationEventPublisher, times(1)).publishEvent(eventCaptor.capture()) @@ -597,6 +612,68 @@ class RequestProcessorTest { assertThat(eventCaptor.firstValue.status).isEqualTo(RequestStatus.SUCCESS) } + @Test + fun testShouldSaveRequestWithGenomDeTan() { + + doAnswer { false } + .whenever(requestService) + .isLastRequestWithKnownStatusDeletion(anyValueClass()) + + doAnswer { MtbFileSender.Response(status = RequestStatus.SUCCESS) } + .whenever(sender) + .send(any<DnpmV2MtbFileRequest>()) + + doAnswer { it.arguments[0] as String } + .whenever(pseudonymizeService) + .patientPseudonym(anyValueClass()) + + doAnswer { "f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2" } + .whenever(pseudonymizeService) + .genomDeTan(anyValueClass()) + + doAnswer { it.arguments[0] }.whenever(transformationService).transform(any<Mtb>()) + + whenever(consentProcessor.consentGatedCheckAndTryEmbedding(any())).thenReturn(true) + + requestProcessor = + RequestProcessor( + pseudonymizeService, + transformationService, + sender, + requestService, + ObjectMapper(), + applicationEventPublisher, + AppConfigProperties(postInitialSubmissionBlock = true), + consentProcessor, + ) + + 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) + + val requestCaptor = argumentCaptor<Request>() + verify(requestService, times(1)).save(requestCaptor.capture()) + assertThat(requestCaptor.firstValue).isNotNull + assertThat(requestCaptor.firstValue.tan).isEqualTo(Tan("f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2")) + } + @Nested inner class WithInitialSubmissionBlock { @@ -656,6 +733,7 @@ class RequestProcessorTest { RequestType.MTB_FILE, SubmissionType.INITIAL, RequestStatus.ERROR, + Tan.empty(), Instant.parse("2026-01-05T09:00:00Z"), submissionAccepted = false, ), @@ -668,6 +746,7 @@ class RequestProcessorTest { RequestType.MTB_FILE, SubmissionType.INITIAL, RequestStatus.SUCCESS, + Tan.empty(), Instant.parse("2026-01-05T10:00:00Z"), submissionAccepted = false, ), diff --git a/src/test/kotlin/dev/dnpm/etl/processor/services/RequestServiceTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/services/RequestServiceTest.kt index fdb7578..d02a5fe 100644 --- a/src/test/kotlin/dev/dnpm/etl/processor/services/RequestServiceTest.kt +++ b/src/test/kotlin/dev/dnpm/etl/processor/services/RequestServiceTest.kt @@ -54,6 +54,7 @@ class RequestServiceTest { RequestType.MTB_FILE, SubmissionType.TEST, RequestStatus.SUCCESS, + Tan.empty(), Instant.parse("2023-08-08T02:00:00Z"), ) @@ -76,6 +77,7 @@ class RequestServiceTest { RequestType.MTB_FILE, SubmissionType.TEST, RequestStatus.WARNING, + Tan.empty(), Instant.parse("2023-07-07T00:00:00Z"), ), Request( @@ -87,6 +89,7 @@ class RequestServiceTest { RequestType.DELETE, SubmissionType.TEST, RequestStatus.WARNING, + Tan.empty(), Instant.parse("2023-07-07T02:00:00Z"), ), Request( @@ -98,6 +101,7 @@ class RequestServiceTest { RequestType.MTB_FILE, SubmissionType.TEST, RequestStatus.UNKNOWN, + Tan.empty(), Instant.parse("2023-08-11T00:00:00Z"), ), ) @@ -120,6 +124,7 @@ class RequestServiceTest { RequestType.MTB_FILE, SubmissionType.TEST, RequestStatus.WARNING, + Tan.empty(), Instant.parse("2023-07-07T00:00:00Z"), ), Request( @@ -131,6 +136,7 @@ class RequestServiceTest { RequestType.MTB_FILE, SubmissionType.TEST, RequestStatus.WARNING, + Tan.empty(), Instant.parse("2023-07-07T02:00:00Z"), ), Request( @@ -142,6 +148,7 @@ class RequestServiceTest { RequestType.MTB_FILE, SubmissionType.TEST, RequestStatus.UNKNOWN, + Tan.empty(), Instant.parse("2023-08-11T00:00:00Z"), ), ) @@ -164,6 +171,7 @@ class RequestServiceTest { RequestType.DELETE, SubmissionType.TEST, RequestStatus.SUCCESS, + Tan.empty(), Instant.parse("2023-07-07T02:00:00Z"), ), Request( @@ -175,6 +183,7 @@ class RequestServiceTest { RequestType.MTB_FILE, SubmissionType.TEST, RequestStatus.WARNING, + Tan.empty(), Instant.parse("2023-08-08T00:00:00Z"), ), ) @@ -212,6 +221,7 @@ class RequestServiceTest { RequestType.DELETE, SubmissionType.TEST, RequestStatus.SUCCESS, + Tan.empty(), Instant.parse("2023-07-07T02:00:00Z"), ) diff --git a/src/test/kotlin/dev/dnpm/etl/processor/services/ResponseProcessorTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/services/ResponseProcessorTest.kt index 804b91c..3b09cc7 100644 --- a/src/test/kotlin/dev/dnpm/etl/processor/services/ResponseProcessorTest.kt +++ b/src/test/kotlin/dev/dnpm/etl/processor/services/ResponseProcessorTest.kt @@ -55,6 +55,7 @@ class ResponseProcessorTest { RequestType.MTB_FILE, SubmissionType.TEST, RequestStatus.UNKNOWN, + Tan.empty(), ) @BeforeEach |
