summaryrefslogtreecommitdiff
path: root/src/test/java/dev/dnpm/oshelper/DNPMHelperTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/dev/dnpm/oshelper/DNPMHelperTest.java')
-rw-r--r--src/test/java/dev/dnpm/oshelper/DNPMHelperTest.java386
1 files changed, 203 insertions, 183 deletions
diff --git a/src/test/java/dev/dnpm/oshelper/DNPMHelperTest.java b/src/test/java/dev/dnpm/oshelper/DNPMHelperTest.java
index 839db4c..87f1771 100644
--- a/src/test/java/dev/dnpm/oshelper/DNPMHelperTest.java
+++ b/src/test/java/dev/dnpm/oshelper/DNPMHelperTest.java
@@ -19,15 +19,23 @@
package dev.dnpm.oshelper;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.Mockito.*;
+
+import de.itc.onkostar.api.IOnkostarApi;
+import de.itc.onkostar.api.Item;
+import de.itc.onkostar.api.Patient;
+import de.itc.onkostar.api.Procedure;
import dev.dnpm.oshelper.analyzer.DNPMHelper;
import dev.dnpm.oshelper.security.DelegatingDataBasedPermissionEvaluator;
import dev.dnpm.oshelper.security.IllegalSecuredObjectAccessException;
import dev.dnpm.oshelper.security.PermissionType;
import dev.dnpm.oshelper.services.systemtherapie.SystemtherapieService;
-import de.itc.onkostar.api.IOnkostarApi;
-import de.itc.onkostar.api.Item;
-import de.itc.onkostar.api.Patient;
-import de.itc.onkostar.api.Procedure;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
@@ -39,154 +47,149 @@ 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;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.mockito.Mockito.*;
-
@ExtendWith(MockitoExtension.class)
class DNPMHelperTest {
- private IOnkostarApi onkostarApi;
+ private IOnkostarApi onkostarApi;
- private SystemtherapieService systemtherapieService;
+ private SystemtherapieService systemtherapieService;
- private DelegatingDataBasedPermissionEvaluator delegatingDataBasedPermissionEvaluator;
+ private DelegatingDataBasedPermissionEvaluator delegatingDataBasedPermissionEvaluator;
- private DNPMHelper dnpmHelper;
+ private DNPMHelper dnpmHelper;
- @BeforeEach
- void setup(
- @Mock IOnkostarApi onkostarApi,
- @Mock SystemtherapieService systemtherapieService,
- @Mock DelegatingDataBasedPermissionEvaluator delegatingDataBasedPermissionEvaluator
- ) {
- this.onkostarApi = onkostarApi;
- this.systemtherapieService = systemtherapieService;
- this.delegatingDataBasedPermissionEvaluator = delegatingDataBasedPermissionEvaluator;
- this.dnpmHelper = new DNPMHelper(onkostarApi, systemtherapieService, delegatingDataBasedPermissionEvaluator);
- }
+ @BeforeEach
+ void setup(
+ @Mock IOnkostarApi onkostarApi,
+ @Mock SystemtherapieService systemtherapieService,
+ @Mock DelegatingDataBasedPermissionEvaluator delegatingDataBasedPermissionEvaluator) {
+ this.onkostarApi = onkostarApi;
+ this.systemtherapieService = systemtherapieService;
+ this.delegatingDataBasedPermissionEvaluator = delegatingDataBasedPermissionEvaluator;
+ this.dnpmHelper =
+ new DNPMHelper(onkostarApi, systemtherapieService, delegatingDataBasedPermissionEvaluator);
+ }
+
+ @Test
+ void testShouldRequestSystemischeTherapienFromDiagnose() {
+ dnpmHelper.getSystemischeTherapienFromDiagnose(Map.of("DiagnoseId", 1234));
+
+ var captor = ArgumentCaptor.forClass(Integer.class);
+ verify(systemtherapieService, times(1)).getSystemischeTherapienFromDiagnose(captor.capture());
+ assertThat(captor.getValue()).isEqualTo(1234);
+ }
+
+ @Test
+ void testShouldReturnNullIfNoDiagnoseIdCallingGetSystemischeTherapienFromDiagnose() {
+ var actual = dnpmHelper.getSystemischeTherapienFromDiagnose(new HashMap<>());
+
+ assertThat(actual).isNull();
+ }
+
+ @Test
+ void testShouldReturnNullIfNoProcedureIdCallingGetEmpfehlung() {
+ var actual = dnpmHelper.getEmpfehlung(new HashMap<>());
+
+ assertThat(actual).isNull();
+ }
+
+ @Nested
+ class UpdateEmpfehlungPrioTests {
@Test
- void testShouldRequestSystemischeTherapienFromDiagnose() {
- dnpmHelper.getSystemischeTherapienFromDiagnose(Map.of("DiagnoseId", 1234));
+ void testShouldReturnFalseIfNoRidAndNoBdCallingUpdateEmpfehlungPrio() {
+ var actual = dnpmHelper.updateEmpfehlungPrio(new HashMap<>());
- var captor = ArgumentCaptor.forClass(Integer.class);
- verify(systemtherapieService, times(1)).getSystemischeTherapienFromDiagnose(captor.capture());
- assertThat(captor.getValue()).isEqualTo(1234);
+ assertThat(actual).isEqualTo(false);
}
@Test
- void testShouldReturnNullIfNoDiagnoseIdCallingGetSystemischeTherapienFromDiagnose() {
- var actual = dnpmHelper.getSystemischeTherapienFromDiagnose(new HashMap<>());
+ void testShouldReturnFalseIfNoRidCallingUpdateEmpfehlungPrio() {
+ var actual = dnpmHelper.updateEmpfehlungPrio(Map.of("bd", "2023-01-01"));
- assertThat(actual).isNull();
+ assertThat(actual).isEqualTo(false);
}
@Test
- void testShouldReturnNullIfNoProcedureIdCallingGetEmpfehlung() {
- var actual = dnpmHelper.getEmpfehlung(new HashMap<>());
+ void testShouldReturnFalseIfNoBdCallingUpdateEmpfehlungPrio() {
+ var actual = dnpmHelper.updateEmpfehlungPrio(Map.of("rid", 1234));
- assertThat(actual).isNull();
+ assertThat(actual).isEqualTo(false);
}
- @Nested
- class UpdateEmpfehlungPrioTests {
-
- @Test
- void testShouldReturnFalseIfNoRidAndNoBdCallingUpdateEmpfehlungPrio() {
- var actual = dnpmHelper.updateEmpfehlungPrio(new HashMap<>());
+ @Test
+ void testShouldReturnTrueIfRidAndBdPresentCallingUpdateEmpfehlungPrio() {
+ var sessionFactory = mock(SessionFactory.class);
+ var session = mock(Session.class);
+ var query = mock(SQLQuery.class);
- assertThat(actual).isEqualTo(false);
- }
+ when(onkostarApi.getSessionFactory()).thenReturn(sessionFactory);
+ when(sessionFactory.getCurrentSession()).thenReturn(session);
+ when(session.createSQLQuery(anyString())).thenReturn(query);
- @Test
- void testShouldReturnFalseIfNoRidCallingUpdateEmpfehlungPrio() {
- var actual = dnpmHelper.updateEmpfehlungPrio(Map.of("bd", "2023-01-01"));
+ var actual = dnpmHelper.updateEmpfehlungPrio(Map.of("rid", 1234, "bd", "2023-01-01"));
- assertThat(actual).isEqualTo(false);
- }
+ assertThat(actual).isEqualTo(true);
+ }
- @Test
- void testShouldReturnFalseIfNoBdCallingUpdateEmpfehlungPrio() {
- var actual = dnpmHelper.updateEmpfehlungPrio(Map.of("rid", 1234));
+ @Test
+ void testShouldCreateSqlQueryWithRidAndBdCallingUpdateEmpfehlungPrio() {
+ var sessionFactory = mock(SessionFactory.class);
+ var session = mock(Session.class);
+ var query = mock(SQLQuery.class);
- assertThat(actual).isEqualTo(false);
- }
+ when(onkostarApi.getSessionFactory()).thenReturn(sessionFactory);
+ when(sessionFactory.getCurrentSession()).thenReturn(session);
+ when(session.createSQLQuery(anyString())).thenReturn(query);
- @Test
- void testShouldReturnTrueIfRidAndBdPresentCallingUpdateEmpfehlungPrio() {
- var sessionFactory = mock(SessionFactory.class);
- var session = mock(Session.class);
- var query = mock(SQLQuery.class);
+ dnpmHelper.updateEmpfehlungPrio(Map.of("rid", 1234, "bd", "2023-01-01"));
- when(onkostarApi.getSessionFactory()).thenReturn(sessionFactory);
- when(sessionFactory.getCurrentSession()).thenReturn(session);
- when(session.createSQLQuery(anyString())).thenReturn(query);
+ var argumentCaptor = ArgumentCaptor.forClass(String.class);
+ verify(session, times(1)).createSQLQuery(argumentCaptor.capture());
+ assertThat(argumentCaptor.getValue())
+ .isEqualTo("UPDATE prozedur SET beginndatum = '2023-01-01' WHERE id = '1234' ");
+ }
+ }
- var actual = dnpmHelper.updateEmpfehlungPrio(Map.of("rid", 1234, "bd", "2023-01-01"));
+ @Nested
+ class GetProzedurenFromDiagnoseTests {
+ @Test
+ void testShouldReturnEmptyStringOnParamCheckIfNoDataFormParamGiven() {
+ var actual = dnpmHelper.getProzedurenFromDiagnose(Map.of("DiagnoseId", 1, "PatientId", 2));
+ assertThat(actual).isExactlyInstanceOf(String.class).isEmpty();
- assertThat(actual).isEqualTo(true);
- }
+ verify(onkostarApi, times(0)).getProceduresByPatientId(anyInt());
+ }
- @Test
- void testShouldCreateSqlQueryWithRidAndBdCallingUpdateEmpfehlungPrio() {
- var sessionFactory = mock(SessionFactory.class);
- var session = mock(Session.class);
- var query = mock(SQLQuery.class);
+ @Test
+ void testShouldReturnEmptyStringOnParamCheckIfNoDiagnoseIdParamGiven() {
+ var actual =
+ dnpmHelper.getProzedurenFromDiagnose(Map.of("dataForm", "OS.Example", "PatientId", 2));
+ assertThat(actual).isExactlyInstanceOf(String.class).isEmpty();
- when(onkostarApi.getSessionFactory()).thenReturn(sessionFactory);
- when(sessionFactory.getCurrentSession()).thenReturn(session);
- when(session.createSQLQuery(anyString())).thenReturn(query);
+ verify(onkostarApi, times(0)).getProceduresByPatientId(anyInt());
+ }
- dnpmHelper.updateEmpfehlungPrio(Map.of("rid", 1234, "bd", "2023-01-01"));
+ @Test
+ void testShouldReturnEmptyStringOnParamCheckIfNoPatientIdParamGiven() {
+ var actual =
+ dnpmHelper.getProzedurenFromDiagnose(Map.of("dataForm", "OS.Example", "DiagnoseId", 1));
+ assertThat(actual).isExactlyInstanceOf(String.class).isEmpty();
- var argumentCaptor = ArgumentCaptor.forClass(String.class);
- verify(session, times(1)).createSQLQuery(argumentCaptor.capture());
- assertThat(argumentCaptor.getValue()).isEqualTo("UPDATE prozedur SET beginndatum = '2023-01-01' WHERE id = '1234' ");
- }
+ verify(onkostarApi, times(0)).getProceduresByPatientId(anyInt());
+ }
+ @Test
+ void testShouldRequestProceduresIfRequiredParamsGiven() {
+ dnpmHelper.getProzedurenFromDiagnose(
+ Map.of("dataForm", "OS.Example", "DiagnoseId", 1, "PatientId", 2));
+ verify(onkostarApi, times(1)).getProceduresByPatientId(anyInt());
}
- @Nested
- class GetProzedurenFromDiagnoseTests {
- @Test
- void testShouldReturnEmptyStringOnParamCheckIfNoDataFormParamGiven() {
- var actual = dnpmHelper.getProzedurenFromDiagnose(Map.of("DiagnoseId", 1, "PatientId", 2));
- assertThat(actual).isExactlyInstanceOf(String.class).isEmpty();
-
- verify(onkostarApi, times(0)).getProceduresByPatientId(anyInt());
- }
-
- @Test
- void testShouldReturnEmptyStringOnParamCheckIfNoDiagnoseIdParamGiven() {
- var actual = dnpmHelper.getProzedurenFromDiagnose(Map.of("dataForm", "OS.Example", "PatientId", 2));
- assertThat(actual).isExactlyInstanceOf(String.class).isEmpty();
-
- verify(onkostarApi, times(0)).getProceduresByPatientId(anyInt());
- }
-
- @Test
- void testShouldReturnEmptyStringOnParamCheckIfNoPatientIdParamGiven() {
- var actual = dnpmHelper.getProzedurenFromDiagnose(Map.of("dataForm", "OS.Example", "DiagnoseId", 1));
- assertThat(actual).isExactlyInstanceOf(String.class).isEmpty();
-
- verify(onkostarApi, times(0)).getProceduresByPatientId(anyInt());
- }
-
- @Test
- void testShouldRequestProceduresIfRequiredParamsGiven() {
- dnpmHelper.getProzedurenFromDiagnose(Map.of("dataForm", "OS.Example", "DiagnoseId", 1, "PatientId", 2));
- verify(onkostarApi, times(1)).getProceduresByPatientId(anyInt());
- }
-
- @Test
- void testShouldNotReturnProceduresNotRelatedToDisease() {
- doAnswer(invocationOnMock -> {
+ @Test
+ void testShouldNotReturnProceduresNotRelatedToDisease() {
+ doAnswer(
+ invocationOnMock -> {
var procedure = new Procedure(onkostarApi);
procedure.setFormName("OS.Example1");
procedure.setId(11);
@@ -194,15 +197,20 @@ class DNPMHelperTest {
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("[]");
- }
+ })
+ .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 -> {
+ @Test
+ void testShouldReturnProcedures() {
+ doAnswer(
+ invocationOnMock -> {
var procedure1 = new Procedure(onkostarApi);
procedure1.setFormName("OS.Example1");
procedure1.setId(11);
@@ -225,90 +233,102 @@ class DNPMHelperTest {
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");
- }
+ })
+ .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
- class GetVerweiseTests {
+ @Nested
+ class GetVerweiseTests {
- @Test
- void testShouldReturnEmptyArrayIfNoProcedureIdParamGiven() {
- var actual = dnpmHelper.getVerweise(Map.of("PatientId", 2));
- assertThat(actual).isNull();
+ @Test
+ void testShouldReturnEmptyArrayIfNoProcedureIdParamGiven() {
+ var actual = dnpmHelper.getVerweise(Map.of("PatientId", 2));
+ assertThat(actual).isNull();
- verify(onkostarApi, times(0)).getSessionFactory();
- }
+ verify(onkostarApi, times(0)).getSessionFactory();
+ }
- @Test
- void testShouldReturnEmptyArrayIfNoPatientIdParamGiven() {
- var actual = dnpmHelper.getVerweise(Map.of("ProcedureId", 1));
- assertThat(actual).isNull();
+ @Test
+ void testShouldReturnEmptyArrayIfNoPatientIdParamGiven() {
+ var actual = dnpmHelper.getVerweise(Map.of("ProcedureId", 1));
+ assertThat(actual).isNull();
- verify(onkostarApi, times(0)).getSessionFactory();
- }
+ verify(onkostarApi, times(0)).getSessionFactory();
+ }
- @Test
- void testShouldRequestSessionFactoryIfRequiredParamsGiven() {
- dnpmHelper.getVerweise(Map.of("ProcedureId", 1, "PatientId", 2));
- verify(onkostarApi, times(1)).getSessionFactory();
- }
+ @Test
+ void testShouldRequestSessionFactoryIfRequiredParamsGiven() {
+ dnpmHelper.getVerweise(Map.of("ProcedureId", 1, "PatientId", 2));
+ verify(onkostarApi, times(1)).getSessionFactory();
+ }
- @Test
- void testShouldCreateSqlQueryWithPatientId() {
- var sessionFactory = mock(SessionFactory.class);
- var session = mock(Session.class);
- var query = mock(SQLQuery.class);
+ @Test
+ void testShouldCreateSqlQueryWithPatientId() {
+ var sessionFactory = mock(SessionFactory.class);
+ var session = mock(Session.class);
+ var query = mock(SQLQuery.class);
- when(onkostarApi.getSessionFactory()).thenReturn(sessionFactory);
- when(sessionFactory.getCurrentSession()).thenReturn(session);
- when(session.createSQLQuery(anyString())).thenReturn(query);
+ when(onkostarApi.getSessionFactory()).thenReturn(sessionFactory);
+ when(sessionFactory.getCurrentSession()).thenReturn(session);
+ when(session.createSQLQuery(anyString())).thenReturn(query);
- dnpmHelper.getVerweise(Map.of("ProcedureId", 1, "PatientId", 2));
+ dnpmHelper.getVerweise(Map.of("ProcedureId", 1, "PatientId", 2));
- var argumentCaptor = ArgumentCaptor.forClass(String.class);
- verify(session, times(1)).createSQLQuery(argumentCaptor.capture());
- assertThat(argumentCaptor.getValue()).contains("WHERE patient_id = 2 AND geloescht = 0");
- }
+ var argumentCaptor = ArgumentCaptor.forClass(String.class);
+ verify(session, times(1)).createSQLQuery(argumentCaptor.capture());
+ assertThat(argumentCaptor.getValue()).contains("WHERE patient_id = 2 AND geloescht = 0");
+ }
- @Test
- void testShouldReturnEcogStatusList() {
- when(delegatingDataBasedPermissionEvaluator.hasPermission(any(), any(Patient.class), any(PermissionType.class)))
- .thenReturn(true);
+ @Test
+ void testShouldReturnEcogStatusList() {
+ when(delegatingDataBasedPermissionEvaluator.hasPermission(
+ any(), any(Patient.class), any(PermissionType.class)))
+ .thenReturn(true);
- doAnswer(invocationOnMock -> {
+ doAnswer(
+ invocationOnMock -> {
var id = invocationOnMock.getArgument(0, Integer.class);
var patient = new Patient(onkostarApi);
patient.setId(id);
return patient;
- }).when(onkostarApi).getPatient(anyInt());
+ })
+ .when(onkostarApi)
+ .getPatient(anyInt());
- dnpmHelper.getEcogStatus(Map.of("PatientId", 42));
+ dnpmHelper.getEcogStatus(Map.of("PatientId", 42));
- var argumentCaptor = ArgumentCaptor.forClass(Patient.class);
- verify(systemtherapieService, times(1)).ecogStatus(argumentCaptor.capture());
- assertThat(argumentCaptor.getValue()).isNotNull();
- assertThat(argumentCaptor.getValue().getId()).isEqualTo(42);
- }
+ var argumentCaptor = ArgumentCaptor.forClass(Patient.class);
+ verify(systemtherapieService, times(1)).ecogStatus(argumentCaptor.capture());
+ assertThat(argumentCaptor.getValue()).isNotNull();
+ assertThat(argumentCaptor.getValue().getId()).isEqualTo(42);
+ }
- @Test
- void testShouldNotReturnEcogStatusListIfNoPermissionGranted() {
- when(delegatingDataBasedPermissionEvaluator.hasPermission(any(), any(Patient.class), any(PermissionType.class)))
- .thenReturn(false);
+ @Test
+ void testShouldNotReturnEcogStatusListIfNoPermissionGranted() {
+ when(delegatingDataBasedPermissionEvaluator.hasPermission(
+ any(), any(Patient.class), any(PermissionType.class)))
+ .thenReturn(false);
- doAnswer(invocationOnMock -> {
+ doAnswer(
+ invocationOnMock -> {
var id = invocationOnMock.getArgument(0, Integer.class);
var patient = new Patient(onkostarApi);
patient.setId(id);
return patient;
- }).when(onkostarApi).getPatient(anyInt());
-
- assertThrows(IllegalSecuredObjectAccessException.class, () -> dnpmHelper.getEcogStatus(Map.of("PatientId", 42)));
- }
+ })
+ .when(onkostarApi)
+ .getPatient(anyInt());
+ assertThrows(
+ IllegalSecuredObjectAccessException.class,
+ () -> dnpmHelper.getEcogStatus(Map.of("PatientId", 42)));
}
-
+ }
}