From 68539f3c4a20de26a902ff666efeea322e7cd8d1 Mon Sep 17 00:00:00 2001 From: jlidke Date: Fri, 31 Oct 2025 15:24:25 +0100 Subject: fix: getProvisionTypeByPolicyCode updated to new consent structure (#173) --- .../etl/processor/consent/ConsentProcessorTest.kt | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/test/kotlin/dev/dnpm/etl/processor/consent/ConsentProcessorTest.kt (limited to 'src/test/kotlin/dev') 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 -- cgit v1.2.3