From 86fc3e361c9c5e290319a0c049ef0c6c0a0764ad Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Thu, 20 Nov 2025 12:52:26 +0100 Subject: fix: possible NPE for MSI anonymization (#195) This might occur if a null value is present in the list of MSI findings. With this change, the usage if "it" has been replaced with proper element names.--- .../dnpm/etl/processor/pseudonym/ExtensionsTest.kt | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'src/test/kotlin') diff --git a/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt index a0b3b24..2b4cd34 100644 --- a/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt +++ b/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt @@ -250,4 +250,45 @@ class ExtensionsTest { .isEqualTo(mtbFile.guidelineProcedures.first().reason.id) assertThat(mtbFile.diagnoses.first().id).isEqualTo(mtbFile.specimens.first().diagnosis.id) } + + @Test + fun shouldNotThrowAnyExceptionOnMissingMsiId( + @Mock pseudonymizeService: PseudonymizeService + ) { + + doAnswer { + it.arguments[0] + "PSEUDO-ID" + } + .whenever(pseudonymizeService) + .patientPseudonym(anyValueClass()) + + doAnswer { "TESTDOMAIN" }.whenever(pseudonymizeService).prefix() + + val mtbFile = + Mtb().apply { + this.patient = + Patient().apply { + this.id = "PID" + this.birthDate = Date.from(Instant.now()) + this.gender = GenderCoding().apply { this.code = GenderCodingCode.MALE } + } + this.msiFindings = listOf( + null, + Msi.builder().id("1").build(), + Msi.builder(). build(), + Msi.builder().specimen(null).build(), + Msi.builder().specimen(Reference.builder().build()).build() + ) + } + + mtbFile.pseudonymizeWith(pseudonymizeService) + mtbFile.anonymizeContentWith(pseudonymizeService) + + assertThat( mtbFile.msiFindings ).isNotNull + assertThat(mtbFile.msiFindings[1]).satisfiesAnyOf( + { assertThat(it.id).isNull() }, + { assertThat(it.id).isEqualTo("TESTDOMAIN44e20a53bbbf9f3ae39626d05df7014dcd77d6098")} + ) + } } -- cgit v1.2.3