summaryrefslogtreecommitdiff
path: root/src/test/java/DNPM/DNPMHelperTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/DNPM/DNPMHelperTest.java')
-rw-r--r--src/test/java/DNPM/DNPMHelperTest.java48
1 files changed, 46 insertions, 2 deletions
diff --git a/src/test/java/DNPM/DNPMHelperTest.java b/src/test/java/DNPM/DNPMHelperTest.java
index a90f2fb..17e8901 100644
--- a/src/test/java/DNPM/DNPMHelperTest.java
+++ b/src/test/java/DNPM/DNPMHelperTest.java
@@ -1,8 +1,12 @@
package DNPM;
+import DNPM.security.IllegalSecuredObjectAccessException;
+import DNPM.security.PermissionType;
+import DNPM.security.PersonPoolBasedPermissionEvaluator;
import DNPM.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 org.hibernate.SQLQuery;
import org.hibernate.Session;
@@ -21,6 +25,7 @@ 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)
@@ -30,16 +35,20 @@ class DNPMHelperTest {
private SystemtherapieService systemtherapieService;
+ private PersonPoolBasedPermissionEvaluator personPoolBasedPermissionEvaluator;
+
private DNPMHelper dnpmHelper;
@BeforeEach
void setup(
@Mock IOnkostarApi onkostarApi,
- @Mock SystemtherapieService systemtherapieService
+ @Mock SystemtherapieService systemtherapieService,
+ @Mock PersonPoolBasedPermissionEvaluator personPoolBasedPermissionEvaluator
) {
this.onkostarApi = onkostarApi;
this.systemtherapieService = systemtherapieService;
- this.dnpmHelper = new DNPMHelper(onkostarApi, systemtherapieService);
+ this.personPoolBasedPermissionEvaluator = personPoolBasedPermissionEvaluator;
+ this.dnpmHelper = new DNPMHelper(onkostarApi, systemtherapieService, personPoolBasedPermissionEvaluator);
}
@Test
@@ -245,6 +254,41 @@ class DNPMHelperTest {
assertThat(argumentCaptor.getValue()).contains("WHERE patient_id = 2 AND geloescht = 0");
}
+ @Test
+ void testShouldReturnEcogStatusList() {
+ when(personPoolBasedPermissionEvaluator.hasPermission(any(), any(Patient.class), any(PermissionType.class)))
+ .thenReturn(true);
+
+ doAnswer(invocationOnMock -> {
+ var id = invocationOnMock.getArgument(0, Integer.class);
+ var patient = new Patient(onkostarApi);
+ patient.setId(id);
+ return patient;
+ }).when(onkostarApi).getPatient(anyInt());
+
+ dnpmHelper.getEcogStatus(Map.of("PatientId", 42));
+
+ var argumentCaptor = ArgumentCaptor.forClass(Patient.class);
+ verify(systemtherapieService, times(1)).ecogSatus(argumentCaptor.capture());
+ assertThat(argumentCaptor.getValue()).isNotNull();
+ assertThat(argumentCaptor.getValue().getId()).isEqualTo(42);
+ }
+
+ @Test
+ void testShouldNotReturnEcogStatusListIfNoPermissionGranted() {
+ when(personPoolBasedPermissionEvaluator.hasPermission(any(), any(Patient.class), any(PermissionType.class)))
+ .thenReturn(false);
+
+ 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)));
+ }
+
}
}