summaryrefslogtreecommitdiff
path: root/src/test/kotlin/dev
diff options
context:
space:
mode:
authorjlidke2025-08-14 10:33:55 +0200
committerGitHub2025-08-14 10:33:55 +0200
commitbe513f305ae4c632aa567e42e9438f233590ab3f (patch)
tree8144d2baaaf7f00e079c0a92fd969cf7d9a76447 /src/test/kotlin/dev
parent2e881578937ee39bab3cacff9ee09328658341c2 (diff)
108 anonym id mtb v2 (#131)
Diffstat (limited to 'src/test/kotlin/dev')
-rw-r--r--src/test/kotlin/dev/dnpm/etl/processor/pseudonym/ExtensionsTest.kt58
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")
+ }
+ }
}
}