summaryrefslogtreecommitdiff
path: root/src/test/java/dev/dnpm/oshelper/security/PersonPoolBasedPermissionEvaluatorTest.java
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2026-09-03 14:35:10 +0200
committerGitHub2026-09-03 14:35:10 +0200
commitfb91356b7777dfa5b6088bcc3a48b43924c1c0fd (patch)
treea3d384390e388395953865a286f15292aaa04a86 /src/test/java/dev/dnpm/oshelper/security/PersonPoolBasedPermissionEvaluatorTest.java
parent59daf77a63bd17bb14248cf9881046dd6b331e2a (diff)
build: apply Spotless plugin (#293)
Diffstat (limited to 'src/test/java/dev/dnpm/oshelper/security/PersonPoolBasedPermissionEvaluatorTest.java')
-rw-r--r--src/test/java/dev/dnpm/oshelper/security/PersonPoolBasedPermissionEvaluatorTest.java323
1 files changed, 178 insertions, 145 deletions
diff --git a/src/test/java/dev/dnpm/oshelper/security/PersonPoolBasedPermissionEvaluatorTest.java b/src/test/java/dev/dnpm/oshelper/security/PersonPoolBasedPermissionEvaluatorTest.java
index 1390b76..01e3399 100644
--- a/src/test/java/dev/dnpm/oshelper/security/PersonPoolBasedPermissionEvaluatorTest.java
+++ b/src/test/java/dev/dnpm/oshelper/security/PersonPoolBasedPermissionEvaluatorTest.java
@@ -19,9 +19,16 @@
package dev.dnpm.oshelper.security;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.when;
+
import de.itc.onkostar.api.IOnkostarApi;
import de.itc.onkostar.api.Patient;
import de.itc.onkostar.api.Procedure;
+import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -29,151 +36,177 @@ import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.security.core.Authentication;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
-
@ExtendWith(MockitoExtension.class)
class PersonPoolBasedPermissionEvaluatorTest {
- private IOnkostarApi onkostarApi;
-
- private Authentication dummyAuthentication;
-
- private PersonPoolBasedPermissionEvaluator permissionEvaluator;
-
- @BeforeEach
- void setup(
- @Mock IOnkostarApi onkostarApi,
- @Mock SecurityService securityService,
- @Mock DummyAuthentication dummyAuthentication
- ) {
- this.onkostarApi = onkostarApi;
- this.dummyAuthentication = dummyAuthentication;
-
- this.permissionEvaluator = new PersonPoolBasedPermissionEvaluator(
- onkostarApi, securityService
- );
-
- when(securityService.getPersonPoolIdsForPermission(any(Authentication.class), any(PermissionType.class))).thenReturn(List.of("Pool2", "Pool3", "Pool5"));
- }
-
- @Test
- void testShouldGrantPermissionByPatientObject() {
- var object = new Patient(onkostarApi);
- object.setPersonPoolCode("Pool2");
-
- var actual = permissionEvaluator.hasPermission(this.dummyAuthentication, object, PermissionType.READ);
-
- assertThat(actual).isTrue();
- }
-
- @Test
- void testShouldGrantPermissionByPatientIdAndType() {
- doAnswer(invocationOnMock -> {
- var object = new Patient(onkostarApi);
- object.setPersonPoolCode("Pool2");
- return object;
- }).when(onkostarApi).getPatient(anyInt());
-
- var actual = permissionEvaluator.hasPermission(this.dummyAuthentication, 123, PersonPoolBasedPermissionEvaluator.PATIENT, PermissionType.READ);
-
- assertThat(actual).isTrue();
- }
-
- @Test
- void testShouldDenyPermissionByPatientObject() {
- var object = new Patient(onkostarApi);
- object.setPersonPoolCode("Pool1");
-
- var actual = permissionEvaluator.hasPermission(this.dummyAuthentication, object, PermissionType.READ);
-
- assertThat(actual).isFalse();
- }
-
- @Test
- void testShouldDenyPermissionByPatientIdAndType() {
- doAnswer(invocationOnMock -> {
- var object = new Patient(onkostarApi);
- object.setPersonPoolCode("Pool1");
- return object;
- }).when(onkostarApi).getPatient(anyInt());
-
- var actual = permissionEvaluator.hasPermission(this.dummyAuthentication, 123, PersonPoolBasedPermissionEvaluator.PATIENT, PermissionType.READ);
-
- assertThat(actual).isFalse();
- }
-
- @Test
- void testShouldGrantPermissionByProcedureObject() {
- var patient = new Patient(onkostarApi);
- patient.setId(1);
- patient.setPersonPoolCode("Pool2");
-
- var object = new Procedure(onkostarApi);
- object.setFormName("OS.Form1");
- object.setPatient(patient);
-
- var actual = permissionEvaluator.hasPermission(this.dummyAuthentication, object, PermissionType.READ);
-
- assertThat(actual).isTrue();
- }
-
- @Test
- void testShouldGrantPermissionByProcedureIdAndType() {
- doAnswer(invocationOnMock -> {
- var patient = new Patient(onkostarApi);
- patient.setId(1);
- patient.setPersonPoolCode("Pool2");
-
- var object = new Procedure(onkostarApi);
- object.setFormName("OS.Form1");
- object.setPatient(patient);
-
- return object;
- }).when(onkostarApi).getProcedure(anyInt());
-
- var actual = permissionEvaluator.hasPermission(this.dummyAuthentication, 456, PersonPoolBasedPermissionEvaluator.PROCEDURE, PermissionType.READ);
-
- assertThat(actual).isTrue();
- }
-
- @Test
- void testShouldDenyPermissionByProcedureObject() {
- var patient = new Patient(onkostarApi);
- patient.setId(1);
- patient.setPersonPoolCode("Pool1");
-
- var object = new Procedure(onkostarApi);
- object.setFormName("OS.Form1");
- object.setPatient(patient);
-
- var actual = permissionEvaluator.hasPermission(this.dummyAuthentication, object, PermissionType.READ);
-
- assertThat(actual).isFalse();
- }
-
- @Test
- void testShouldDenyPermissionByProcedureIdAndType() {
- doAnswer(invocationOnMock -> {
- var patient = new Patient(onkostarApi);
- patient.setId(1);
- patient.setPersonPoolCode("Pool1");
-
- var object = new Procedure(onkostarApi);
- object.setFormName("OS.Form1");
- object.setPatient(patient);
-
- return object;
- }).when(onkostarApi).getProcedure(anyInt());
-
- var actual = permissionEvaluator.hasPermission(this.dummyAuthentication, 123, PersonPoolBasedPermissionEvaluator.PROCEDURE, PermissionType.READ);
-
- assertThat(actual).isFalse();
- }
-
-} \ No newline at end of file
+ private IOnkostarApi onkostarApi;
+
+ private Authentication dummyAuthentication;
+
+ private PersonPoolBasedPermissionEvaluator permissionEvaluator;
+
+ @BeforeEach
+ void setup(
+ @Mock IOnkostarApi onkostarApi,
+ @Mock SecurityService securityService,
+ @Mock DummyAuthentication dummyAuthentication) {
+ this.onkostarApi = onkostarApi;
+ this.dummyAuthentication = dummyAuthentication;
+
+ this.permissionEvaluator = new PersonPoolBasedPermissionEvaluator(onkostarApi, securityService);
+
+ when(securityService.getPersonPoolIdsForPermission(
+ any(Authentication.class), any(PermissionType.class)))
+ .thenReturn(List.of("Pool2", "Pool3", "Pool5"));
+ }
+
+ @Test
+ void testShouldGrantPermissionByPatientObject() {
+ var object = new Patient(onkostarApi);
+ object.setPersonPoolCode("Pool2");
+
+ var actual =
+ permissionEvaluator.hasPermission(this.dummyAuthentication, object, PermissionType.READ);
+
+ assertThat(actual).isTrue();
+ }
+
+ @Test
+ void testShouldGrantPermissionByPatientIdAndType() {
+ doAnswer(
+ invocationOnMock -> {
+ var object = new Patient(onkostarApi);
+ object.setPersonPoolCode("Pool2");
+ return object;
+ })
+ .when(onkostarApi)
+ .getPatient(anyInt());
+
+ var actual =
+ permissionEvaluator.hasPermission(
+ this.dummyAuthentication,
+ 123,
+ PersonPoolBasedPermissionEvaluator.PATIENT,
+ PermissionType.READ);
+
+ assertThat(actual).isTrue();
+ }
+
+ @Test
+ void testShouldDenyPermissionByPatientObject() {
+ var object = new Patient(onkostarApi);
+ object.setPersonPoolCode("Pool1");
+
+ var actual =
+ permissionEvaluator.hasPermission(this.dummyAuthentication, object, PermissionType.READ);
+
+ assertThat(actual).isFalse();
+ }
+
+ @Test
+ void testShouldDenyPermissionByPatientIdAndType() {
+ doAnswer(
+ invocationOnMock -> {
+ var object = new Patient(onkostarApi);
+ object.setPersonPoolCode("Pool1");
+ return object;
+ })
+ .when(onkostarApi)
+ .getPatient(anyInt());
+
+ var actual =
+ permissionEvaluator.hasPermission(
+ this.dummyAuthentication,
+ 123,
+ PersonPoolBasedPermissionEvaluator.PATIENT,
+ PermissionType.READ);
+
+ assertThat(actual).isFalse();
+ }
+
+ @Test
+ void testShouldGrantPermissionByProcedureObject() {
+ var patient = new Patient(onkostarApi);
+ patient.setId(1);
+ patient.setPersonPoolCode("Pool2");
+
+ var object = new Procedure(onkostarApi);
+ object.setFormName("OS.Form1");
+ object.setPatient(patient);
+
+ var actual =
+ permissionEvaluator.hasPermission(this.dummyAuthentication, object, PermissionType.READ);
+
+ assertThat(actual).isTrue();
+ }
+
+ @Test
+ void testShouldGrantPermissionByProcedureIdAndType() {
+ doAnswer(
+ invocationOnMock -> {
+ var patient = new Patient(onkostarApi);
+ patient.setId(1);
+ patient.setPersonPoolCode("Pool2");
+
+ var object = new Procedure(onkostarApi);
+ object.setFormName("OS.Form1");
+ object.setPatient(patient);
+
+ return object;
+ })
+ .when(onkostarApi)
+ .getProcedure(anyInt());
+
+ var actual =
+ permissionEvaluator.hasPermission(
+ this.dummyAuthentication,
+ 456,
+ PersonPoolBasedPermissionEvaluator.PROCEDURE,
+ PermissionType.READ);
+
+ assertThat(actual).isTrue();
+ }
+
+ @Test
+ void testShouldDenyPermissionByProcedureObject() {
+ var patient = new Patient(onkostarApi);
+ patient.setId(1);
+ patient.setPersonPoolCode("Pool1");
+
+ var object = new Procedure(onkostarApi);
+ object.setFormName("OS.Form1");
+ object.setPatient(patient);
+
+ var actual =
+ permissionEvaluator.hasPermission(this.dummyAuthentication, object, PermissionType.READ);
+
+ assertThat(actual).isFalse();
+ }
+
+ @Test
+ void testShouldDenyPermissionByProcedureIdAndType() {
+ doAnswer(
+ invocationOnMock -> {
+ var patient = new Patient(onkostarApi);
+ patient.setId(1);
+ patient.setPersonPoolCode("Pool1");
+
+ var object = new Procedure(onkostarApi);
+ object.setFormName("OS.Form1");
+ object.setPatient(patient);
+
+ return object;
+ })
+ .when(onkostarApi)
+ .getProcedure(anyInt());
+
+ var actual =
+ permissionEvaluator.hasPermission(
+ this.dummyAuthentication,
+ 123,
+ PersonPoolBasedPermissionEvaluator.PROCEDURE,
+ PermissionType.READ);
+
+ assertThat(actual).isFalse();
+ }
+}