summaryrefslogtreecommitdiff
path: root/src/test/kotlin/dev/dnpm/etl/processor
diff options
context:
space:
mode:
authorjlidke2025-10-31 15:24:25 +0100
committerGitHub2025-10-31 15:24:25 +0100
commit68539f3c4a20de26a902ff666efeea322e7cd8d1 (patch)
tree8d48acb244eb2f9d11108280a85f471282cb2e03 /src/test/kotlin/dev/dnpm/etl/processor
parentdbfd5139c7fa1e35d3ff923dd613163514227fbc (diff)
fix: getProvisionTypeByPolicyCode updated to new consent structure (#173)
Diffstat (limited to 'src/test/kotlin/dev/dnpm/etl/processor')
-rw-r--r--src/test/kotlin/dev/dnpm/etl/processor/consent/ConsentProcessorTest.kt58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/test/kotlin/dev/dnpm/etl/processor/consent/ConsentProcessorTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/consent/ConsentProcessorTest.kt
new file mode 100644
index 0000000..5a86a29
--- /dev/null
+++ b/src/test/kotlin/dev/dnpm/etl/processor/consent/ConsentProcessorTest.kt
@@ -0,0 +1,58 @@
+package dev.dnpm.etl.processor.consent
+
+import ca.uhn.fhir.context.FhirContext
+import com.fasterxml.jackson.databind.ObjectMapper
+import dev.dnpm.etl.processor.config.AppConfigProperties
+import dev.dnpm.etl.processor.config.GIcsConfigProperties
+import dev.dnpm.etl.processor.services.ConsentProcessor
+import org.assertj.core.api.Assertions.assertThat
+import org.hl7.fhir.r4.model.Bundle
+import org.hl7.fhir.r4.model.Consent
+import org.junit.jupiter.api.BeforeEach
+import org.junit.jupiter.api.extension.ExtendWith
+import org.junit.jupiter.params.ParameterizedTest
+import org.junit.jupiter.params.provider.CsvSource
+import org.mockito.Mock
+import org.mockito.junit.jupiter.MockitoExtension
+import java.util.*
+
+@ExtendWith(MockitoExtension::class)
+class ConsentProcessorTest {
+
+ lateinit var consentProcessor: ConsentProcessor
+
+ val objectMapper = ObjectMapper()
+ val fhirContext = FhirContext.forR4()
+
+ @BeforeEach
+ fun setup(
+ @Mock consentService: IConsentService
+ ) {
+ val appConfigProperties = AppConfigProperties()
+ val gIcsConfigProperties = GIcsConfigProperties("http://localhost")
+
+ this.consentProcessor = ConsentProcessor(
+ appConfigProperties,
+ gIcsConfigProperties,
+ objectMapper,
+ fhirContext,
+ consentService
+ )
+ }
+
+ @ParameterizedTest
+ @CsvSource(value = [
+ "permittedConsentBundle.json,permit",
+ "deniedConsentBundle.json,deny"
+ ])
+ fun checkGetProvisionTypeByPolicyCode(filename: String, expected: String) {
+ val bundle = fhirContext.newJsonParser().parseResource(
+ this.javaClass.classLoader.getResourceAsStream(filename)
+ )
+ assertThat(bundle).isInstanceOf(Bundle::class.java)
+
+ val actual = consentProcessor.getProvisionTypeByPolicyCode(bundle as Bundle, Date(), ConsentDomain.BROAD_CONSENT)
+
+ assertThat(actual).isEqualTo(Consent.ConsentProvisionType.valueOf(expected.uppercase()))
+ }
+} \ No newline at end of file