summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2025-11-04 11:39:05 +0100
committerGitHub2025-11-04 11:39:05 +0100
commit24d9116e31a7d0afdfbf47aa96a0c8bd54c9508b (patch)
tree1eea918aec537cc2768b70748c5a1fcac10b268a /src/test
parent30ad7c299cb5c6e70a934df885efe82501fe5172 (diff)
fix: errors in response parsing (#181)v0.12.0-rc.1
Diffstat (limited to 'src/test')
-rw-r--r--src/test/kotlin/dev/dnpm/etl/processor/monitoring/ReportServiceTest.kt36
-rw-r--r--src/test/resources/dip-response.json36
2 files changed, 72 insertions, 0 deletions
diff --git a/src/test/kotlin/dev/dnpm/etl/processor/monitoring/ReportServiceTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/monitoring/ReportServiceTest.kt
new file mode 100644
index 0000000..4bf1321
--- /dev/null
+++ b/src/test/kotlin/dev/dnpm/etl/processor/monitoring/ReportServiceTest.kt
@@ -0,0 +1,36 @@
+package dev.dnpm.etl.processor.monitoring
+
+import dev.dnpm.etl.processor.config.JacksonConfig
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.jupiter.api.BeforeEach
+import org.junit.jupiter.api.Test
+import java.util.*
+
+class ReportServiceTest {
+
+ lateinit var service: ReportService
+
+ @BeforeEach
+ fun setUp() {
+ val jacksonConfig = JacksonConfig()
+ service = ReportService(jacksonConfig.objectMapper())
+ }
+
+ @Test
+ fun shouldParseDataQualityReport() {
+ val dataQualityReport = Objects.requireNonNull(this.javaClass.classLoader.getResource("dip-response.json"))
+ .readText()
+
+ val actual = service.deserialize(dataQualityReport)
+
+ assertThat(actual).isNotNull
+ assertThat(actual).hasSize(6)
+ assertThat(actual[0].severity).isEqualTo(ReportService.Severity.FATAL)
+ assertThat(actual[1].severity).isEqualTo(ReportService.Severity.ERROR)
+ assertThat(actual[2].severity).isEqualTo(ReportService.Severity.WARNING)
+ assertThat(actual[3].severity).isEqualTo(ReportService.Severity.WARNING)
+ assertThat(actual[4].severity).isEqualTo(ReportService.Severity.WARNING)
+ assertThat(actual[5].severity).isEqualTo(ReportService.Severity.INFO)
+ }
+
+} \ No newline at end of file
diff --git a/src/test/resources/dip-response.json b/src/test/resources/dip-response.json
new file mode 100644
index 0000000..d1dacb6
--- /dev/null
+++ b/src/test/resources/dip-response.json
@@ -0,0 +1,36 @@
+{
+ "patient": "TEST-PATIENT0123456789abcdef",
+ "issues": [
+ {
+ "severity": "error",
+ "message": "MVH-Einschluss-Fallkonferenz darf nicht vor oder ohne Einwilligung zur Teilnahme stattgefunden haben",
+ "path": "/Datum der MVH-Einwilligung"
+ },
+ {
+ "severity": "warning",
+ "message": "Fehlende Angabe 'Tumor-Grading'",
+ "path": "/Diagnose[0123456789abcdef]/Tumor-Grading"
+ },
+ {
+ "severity": "fatal",
+ "message": "Nicht auflösbare Referenz-ID '0123456789abcdef' auf Objekt 'Diagnose'",
+ "path": "/Systemische-Therapie[0123456789abcdef]/Therapie-Grund (Diagnose)"
+ },
+ {
+ "severity": "warning",
+ "message": "Fehlende Angabe",
+ "path": "/Kostenübernahme-Anträge"
+ },
+ {
+ "severity": "info",
+ "message": "Sonstige Info",
+ "path": "/Kostenübernahme-Antworten"
+ },
+ {
+ "severity": "warning",
+ "message": "Fehlende Angabe",
+ "path": "/MTB-Therapien"
+ }
+ ],
+ "createdAt": "2025-11-04T10:00:00.000000000Z"
+}