From b87a012d80cce6aa9cc5b80b01f8cb17068fe5b9 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Wed, 29 Mar 2023 13:14:26 +0200 Subject: [PATCH] =?UTF-8?q?Tests=20f=C3=BCr=20DNPMHelper#getProzedurenFrom?= =?UTF-8?q?Diagnose()=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Zum Ausführen dieser Tests musste in der Onkostar-API fehlende Funktionalität für das ObjectMapping in JSON nachgebildet werden. Hierzu wurden zwei Dummy-Klassen angelegt, die jeweils `null` zurückgeben. Ohne diese Klassen und Methoden, welche in der OS-API referenziert werden, ist ein Ausführen der Tests nicht möglich und es werden eine ClassNotFoundException bzw. MethodNotFoundException geworfen. --- src/test/java/DNPM/DNPMHelperTest.java | 51 ++++++++++++++++++++ src/test/java/de/itc/utils/DateFormats.java | 16 ++++++ src/test/java/de/itc/utils/MapUtilities.java | 22 +++++++++ 3 files changed, 89 insertions(+) create mode 100644 src/test/java/de/itc/utils/DateFormats.java create mode 100644 src/test/java/de/itc/utils/MapUtilities.java diff --git a/src/test/java/DNPM/DNPMHelperTest.java b/src/test/java/DNPM/DNPMHelperTest.java index 51f91ff..188d97a 100644 --- a/src/test/java/DNPM/DNPMHelperTest.java +++ b/src/test/java/DNPM/DNPMHelperTest.java @@ -2,6 +2,8 @@ package DNPM; import DNPM.services.systemtherapie.SystemtherapieService; import de.itc.onkostar.api.IOnkostarApi; +import de.itc.onkostar.api.Item; +import de.itc.onkostar.api.Procedure; import org.hibernate.SQLQuery; import org.hibernate.Session; import org.hibernate.SessionFactory; @@ -13,7 +15,9 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; +import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; @@ -150,6 +154,53 @@ class DNPMHelperTest { dnpmHelper.getProzedurenFromDiagnose(Map.of("dataForm", "OS.Example", "DiagnoseId", 1, "PatientId", 2)); verify(onkostarApi, times(1)).getProceduresByPatientId(anyInt()); } + + @Test + void testShouldNotReturnProceduresNotRelatedToDisease() { + doAnswer(invocationOnMock -> { + var procedure = new Procedure(onkostarApi); + procedure.setFormName("OS.Example1"); + procedure.setId(11); + procedure.addDiseaseId(4711); + procedure.setValue("formfield", new Item("formfield", "Wert11")); + + return List.of(procedure); + }).when(onkostarApi).getProceduresByPatientId(anyInt()); + + var actual = dnpmHelper.getProzedurenFromDiagnose(Map.of("dataForm", "OS.Example", "DiagnoseId", 1, "PatientId", 2)); + assertThat(actual).isEqualTo("[]"); + } + + @Test + void testShouldReturnProcedures() { + doAnswer(invocationOnMock -> { + var procedure1 = new Procedure(onkostarApi); + procedure1.setFormName("OS.Example1"); + procedure1.setId(11); + procedure1.addDiseaseId(1); + procedure1.setStartDate(new Date()); + procedure1.setValue("formfield", new Item("formfield", "Wert11")); + + var procedure2 = new Procedure(onkostarApi); + procedure2.setFormName("OS.Example2"); + procedure2.setId(21); + procedure2.addDiseaseId(1); + procedure2.setStartDate(new Date()); + procedure2.setValue("formfield", new Item("formfield", "Wert21")); + + var procedure3 = new Procedure(onkostarApi); + procedure3.setFormName("OS.Example1"); + procedure3.setId(12); + procedure3.addDiseaseId(1); + procedure3.setStartDate(new Date()); + procedure3.setValue("formfield", new Item("formfield", "Wert12")); + + return List.of(procedure1, procedure2, procedure3); + }).when(onkostarApi).getProceduresByPatientId(anyInt()); + + var actual = dnpmHelper.getProzedurenFromDiagnose(Map.of("dataForm", "OS.Example", "DiagnoseId", 1, "PatientId", 2)); + assertThat(actual).contains("OS.Example1", "OS.Example2", "Wert11", "Wert21", "Wert12"); + } } @Nested diff --git a/src/test/java/de/itc/utils/DateFormats.java b/src/test/java/de/itc/utils/DateFormats.java new file mode 100644 index 0000000..6a5f6cd --- /dev/null +++ b/src/test/java/de/itc/utils/DateFormats.java @@ -0,0 +1,16 @@ +package de.itc.utils; + +import java.util.Date; + +/** + * Diese Klasse dient nur Testzwecken, da die Klasse und enthaltene(n) Methode(n) von der Onkostar-API + * benötigt und verwendet werden, nicht jedoch in der Onkostar-API-JAR enthalten sind. + * Das tatsächliche Verhalten innerhalb von Onkostar wird abweichen. + */ +public class DateFormats { + + public static Date parseDate(String value) { + return null; + } + +} diff --git a/src/test/java/de/itc/utils/MapUtilities.java b/src/test/java/de/itc/utils/MapUtilities.java new file mode 100644 index 0000000..2dfe153 --- /dev/null +++ b/src/test/java/de/itc/utils/MapUtilities.java @@ -0,0 +1,22 @@ +package de.itc.utils; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.util.LinkedHashMap; + +/** + * Diese Klasse dient nur Testzwecken, da die Klasse und enthaltene(n) Methode(n) von der Onkostar-API + * benötigt und verwendet werden, nicht jedoch in der Onkostar-API-JAR enthalten sind. + * Das tatsächliche Verhalten innerhalb von Onkostar wird abweichen. + */ +public class MapUtilities { + + public static ObjectMapper getObjectMapper() { + return null; + } + + public static LinkedHashMap stringToMap(String value) { + return null; + } + +}