diff options
| author | jlidke | 2025-08-14 10:33:55 +0200 |
|---|---|---|
| committer | GitHub | 2025-08-14 10:33:55 +0200 |
| commit | be513f305ae4c632aa567e42e9438f233590ab3f (patch) | |
| tree | 8144d2baaaf7f00e079c0a92fd969cf7d9a76447 /src/test/kotlin/dev/dnpm/etl/processor | |
| parent | 2e881578937ee39bab3cacff9ee09328658341c2 (diff) | |
108 anonym id mtb v2 (#131)
Diffstat (limited to 'src/test/kotlin/dev/dnpm/etl/processor')
| -rw-r--r-- | src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt | 58 |
1 files changed, 58 insertions, 0 deletions
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 5955263..58405cd 100644 --- a/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt +++ b/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt @@ -138,5 +138,63 @@ class ExtensionsTest { assertThat(mtbFile.episodesOfCare).hasSize(1) assertThat(mtbFile.episodesOfCare.map { it.id }).isNotNull } + + @Test + fun shouldNotContainAnyUuidAfterRehashingOfIds(@Mock pseudonymizeService: PseudonymizeService) { + doAnswer { + it.arguments[0] + "PSEUDO-ID" + }.whenever(pseudonymizeService).patientPseudonym(anyValueClass()) + + doAnswer { + "TESTDOMAIN" + }.whenever(pseudonymizeService).prefix() + + val mtbFile = fakeMtbFile() + + /** + * replace hex values with random long, so our test does not match false positives + */ + mtbFile.ngsReports.forEach { report -> + report.results.simpleVariants.forEach { simpleVariant -> + simpleVariant.externalIds.forEach { extIdValue -> + extIdValue.value = + Math.random().toLong().toString() + } + } + } + mtbFile.ngsReports.forEach { report -> + report.results.rnaFusions.forEach { simpleVariant -> + simpleVariant.externalIds.forEach { extIdValue -> + extIdValue.value = + Math.random().toLong().toString() + } + simpleVariant.fusionPartner3Prime?.transcriptId?.value = + Math.random().toLong().toString() + simpleVariant.fusionPartner5Prime?.transcriptId?.value = + Math.random().toLong().toString() + simpleVariant.externalIds?.forEach { it -> + it?.value = Math.random().toLong().toString() + } + } + } + + mtbFile.pseudonymizeWith(pseudonymizeService) + mtbFile.anonymizeContentWith(pseudonymizeService) + + val pattern = + "\"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}\"".toRegex() + .toPattern() + val input = mtbFile.serialized() + val matcher = pattern.matcher(input) + + assertThrows<IllegalStateException> { + matcher.find() + val posSt = "check at pos: " + matcher.start().toString() + ", " + matcher.end() + println(posSt + " with " + matcher.group()) + }.also { + assertThat(it.message).isEqualTo("No match found") + } + } } } |
