summaryrefslogtreecommitdiff
path: root/src/test/kotlin
diff options
context:
space:
mode:
authorjlidke2025-08-18 12:30:19 +0200
committerGitHub2025-08-18 12:30:19 +0200
commit7f80224eaccbee59510ae1c8d2aaff33b9cbd67b (patch)
treed39286dcb1734960c2eeb2cd69fbfd89173ae0c6 /src/test/kotlin
parent3eb1c79cec3704a5b821377c4df3f8e9f703c8a3 (diff)
132 fix consent check (#133)
Diffstat (limited to 'src/test/kotlin')
-rw-r--r--src/test/kotlin/dev/dnpm/etl/processor/services/ConsentProcessorTest.kt44
-rw-r--r--src/test/kotlin/dev/dnpm/etl/processor/services/TransformationServiceTest.kt8
2 files changed, 37 insertions, 15 deletions
diff --git a/src/test/kotlin/dev/dnpm/etl/processor/services/ConsentProcessorTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/services/ConsentProcessorTest.kt
index 5a3fad0..607234d 100644
--- a/src/test/kotlin/dev/dnpm/etl/processor/services/ConsentProcessorTest.kt
+++ b/src/test/kotlin/dev/dnpm/etl/processor/services/ConsentProcessorTest.kt
@@ -78,7 +78,7 @@ class ConsentProcessorTest {
val checkResult = consentProcessor.consentGatedCheckAndTryEmbedding(inputMtb)
assertThat(checkResult).isTrue
- assertThat(inputMtb.metadata.researchConsents).hasSize(13)
+ assertThat(inputMtb.metadata.researchConsents).hasSize(26)
}
companion object {
@@ -93,13 +93,13 @@ class ConsentProcessorTest {
)
)
consent.provision.period.start =
- Date.from(Instant.parse("2025-06-23T00:00:00.00Z"))
+ Date.from(Instant.parse("2025-08-15T00:00:00.00Z"))
consent.provision.period.end =
Date.from(Instant.parse("3000-01-01T00:00:00.00Z"))
val addProvision1 = consent.provision.addProvision()
addProvision1.setType(Consent.ConsentProvisionType.fromCode("permit"))
- addProvision1.period.start = Date.from(Instant.parse("2025-06-23T00:00:00.00Z"))
+ addProvision1.period.start = Date.from(Instant.parse("2025-08-15T00:00:00.00Z"))
addProvision1.period.end = Date.from(Instant.parse("3000-01-01T00:00:00.00Z"))
addProvision1.code.addLast(
CodeableConcept(
@@ -113,7 +113,7 @@ class ConsentProcessorTest {
val addProvision2 = consent.provision.addProvision()
addProvision2.setType(Consent.ConsentProvisionType.fromCode("deny"))
- addProvision2.period.start = Date.from(Instant.parse("2025-06-23T00:00:00.00Z"))
+ addProvision2.period.start = Date.from(Instant.parse("2025-08-15T00:00:00.00Z"))
addProvision2.period.end = Date.from(Instant.parse("3000-01-01T00:00:00.00Z"))
addProvision2.code.addLast(
CodeableConcept(
@@ -130,13 +130,14 @@ class ConsentProcessorTest {
@ParameterizedTest
@CsvSource(
- "2.16.840.1.113883.3.1937.777.24.5.3.8,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2025-07-23T00:00:00+02:00,PERMIT,expect permit",
- "2.16.840.1.113883.3.1937.777.24.5.3.8,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2025-06-23T00:00:00+02:00,PERMIT,expect permit date is exactly on start",
- "2.16.840.1.113883.3.1937.777.24.5.3.8,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2055-06-23T00:00:00+02:00,PERMIT,expect permit date is exactly on end",
- "2.16.840.1.113883.3.1937.777.24.5.3.8,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2021-06-23T00:00:00+02:00,NULL,date is before start",
- "2.16.840.1.113883.3.1937.777.24.5.3.8,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2060-06-23T00:00:00+02:00,NULL,date is after end",
- "2.16.840.1.113883.3.1937.777.24.5.3.8,XXXX,2025-07-23T00:00:00+02:00,NULL,system not found - therefore expect NULL",
- "2.16.840.1.113883.3.1937.777.24.5.3.27,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2025-07-23T00:00:00+02:00,DENY,provision is denied"
+ "2.16.840.1.113883.3.1937.777.24.5.3.8,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2025-08-15T00:00:00+02:00,PERMIT,expect permit",
+ "2.16.840.1.113883.3.1937.777.24.5.3.8,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2025-08-15T00:00:00+02:00,PERMIT,expect permit date is exactly on start",
+ "2.16.840.1.113883.3.1937.777.24.5.3.8,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2055-08-15T00:00:00+02:00,PERMIT,expect permit date is exactly on end",
+ "2.16.840.1.113883.3.1937.777.24.5.3.8,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2021-08-15T00:00:00+02:00,NULL,date is before start",
+ "2.16.840.1.113883.3.1937.777.24.5.3.8,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2060-08-15T00:00:00+02:00,NULL,date is after end",
+ "2.16.840.1.113883.3.1937.777.24.5.3.27,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2025-08-15T00:00:00+02:00,DENY,provision is denied",
+ "unknownCode,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3,2025-08-15T00:00:00+02:00,NULL,code does not exist - therefore expect NULL",
+ "2.16.840.1.113883.3.1937.777.24.5.3.8,XXXX,2025-08-15T00:00:00+02:00,NULL,system not found - therefore expect NULL",
)
fun getProvisionTypeByPolicyCode(
code: String?, system: String?, timeStamp: String, expected: String?,
@@ -155,6 +156,27 @@ class ConsentProcessorTest {
.isEqualTo(Consent.ConsentProvisionType.valueOf(expected!!))
}
+ @Test
+ fun getProvisionTypeOnEmptyConsent(
+ ) {
+ val emptyResources = Bundle().addEntry(Bundle.BundleEntryComponent().setResource(Consent()))
+
+ val requestDate = Date.from(OffsetDateTime.parse("2025-08-15T00:00:00+02:00").toInstant())
+
+ val result: Consent.ConsentProvisionType =
+ consentProcessor.getProvisionTypeByPolicyCode(
+ emptyResources,
+ "anyCode",
+ "anySystem",
+ requestDate
+ )
+ assertThat(result).isNotNull()
+
+
+ assertThat(result).`as`("empty consent resource - expect NULL")
+ .isEqualTo(Consent.ConsentProvisionType.NULL)
+ }
+
fun getDummyBroadConsentBundle(): Bundle {
val bundle: InputStream?
try {
diff --git a/src/test/kotlin/dev/dnpm/etl/processor/services/TransformationServiceTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/services/TransformationServiceTest.kt
index 4a2d2d3..ba9d23f 100644
--- a/src/test/kotlin/dev/dnpm/etl/processor/services/TransformationServiceTest.kt
+++ b/src/test/kotlin/dev/dnpm/etl/processor/services/TransformationServiceTest.kt
@@ -97,18 +97,18 @@ class TransformationServiceTest {
assertThat(mvhMetadata).isNotNull
mvhMetadata.modelProjectConsent =
- ModelProjectConsent.builder().date(Date.from(Instant.parse("2025-06-23T00:00:00.00Z")))
+ ModelProjectConsent.builder().date(Date.from(Instant.parse("2025-08-15T00:00:00.00Z")))
.version("1").provisions(
listOf(
Provision.builder().type(ConsentProvision.PERMIT)
.purpose(ModelProjectConsentPurpose.SEQUENCING)
- .date(Date.from(Instant.parse("2025-06-23T00:00:00.00Z"))).build(),
+ .date(Date.from(Instant.parse("2025-08-15T00:00:00.00Z"))).build(),
Provision.builder().type(ConsentProvision.PERMIT)
.purpose(ModelProjectConsentPurpose.REIDENTIFICATION)
- .date(Date.from(Instant.parse("2025-06-23T00:00:00.00Z"))).build(),
+ .date(Date.from(Instant.parse("2025-08-15T00:00:00.00Z"))).build(),
Provision.builder().type(ConsentProvision.DENY)
.purpose(ModelProjectConsentPurpose.CASE_IDENTIFICATION)
- .date(Date.from(Instant.parse("2025-06-23T00:00:00.00Z"))).build()
+ .date(Date.from(Instant.parse("2025-08-15T00:00:00.00Z"))).build()
)
).build()
val consent = ConsentProcessorTest.getDummyGenomDeConsent()