Skip to content

Commit 7e09339

Browse files
committed
✅ added test
1 parent 30ca14d commit 7e09339

2 files changed

Lines changed: 65 additions & 36 deletions

File tree

sormas-backend/src/main/java/de/symeda/sormas/backend/user/UserService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -734,7 +734,7 @@ public Predicate createUserHasNationJurisdictionFilter(CriteriaBuilder cb, From<
734734
public Predicate buildUserRightsFilter(Root<User> from, Collection<UserRight> userRights) {
735735

736736
if (userRights != null && !userRights.isEmpty()) {
737-
logger.error("User rights: [{}]", userRights);
737+
logger.debug("Requested user rights: [{}]", userRights);
738738
Join<User, UserRole> rolesJoin = from.join(User.USER_ROLES, JoinType.LEFT);
739739
Join<UserRole, UserRight> rightsJoin = rolesJoin.join(UserRole.USER_RIGHTS, JoinType.LEFT);
740740
return rightsJoin.in(Collections.singletonList(userRights));

sormas-backend/src/test/java/de/symeda/sormas/backend/user/UserFacadeEjbTest.java

Lines changed: 64 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,21 @@
11
package de.symeda.sormas.backend.user;
22

3-
import static de.symeda.sormas.api.user.DefaultUserRole.ADMIN_SUPERVISOR;
4-
import static de.symeda.sormas.api.user.DefaultUserRole.CASE_OFFICER;
5-
import static de.symeda.sormas.api.user.DefaultUserRole.CONTACT_OFFICER;
6-
import static de.symeda.sormas.api.user.DefaultUserRole.CONTACT_SUPERVISOR;
7-
import static de.symeda.sormas.api.user.DefaultUserRole.DISTRICT_OBSERVER;
8-
import static de.symeda.sormas.api.user.DefaultUserRole.NATIONAL_USER;
9-
import static de.symeda.sormas.api.user.DefaultUserRole.POE_INFORMANT;
10-
import static de.symeda.sormas.api.user.DefaultUserRole.REST_EXTERNAL_VISITS_USER;
11-
import static de.symeda.sormas.api.user.DefaultUserRole.SURVEILLANCE_OFFICER;
12-
import static de.symeda.sormas.api.user.DefaultUserRole.SURVEILLANCE_SUPERVISOR;
3+
import static de.symeda.sormas.api.user.DefaultUserRole.*;
134
import static org.hamcrest.CoreMatchers.equalTo;
145
import static org.hamcrest.MatcherAssert.assertThat;
15-
import static org.hamcrest.Matchers.contains;
16-
import static org.hamcrest.Matchers.containsInAnyOrder;
17-
import static org.hamcrest.Matchers.hasItem;
18-
import static org.hamcrest.Matchers.hasItems;
19-
import static org.hamcrest.Matchers.hasSize;
20-
import static org.hamcrest.Matchers.is;
21-
import static org.hamcrest.Matchers.not;
22-
import static org.hamcrest.Matchers.nullValue;
23-
import static org.junit.jupiter.api.Assertions.assertEquals;
24-
import static org.junit.jupiter.api.Assertions.assertFalse;
25-
import static org.junit.jupiter.api.Assertions.assertNotNull;
26-
import static org.junit.jupiter.api.Assertions.assertNull;
27-
import static org.junit.jupiter.api.Assertions.assertThrows;
28-
import static org.junit.jupiter.api.Assertions.assertTrue;
6+
import static org.hamcrest.Matchers.*;
7+
import static org.junit.jupiter.api.Assertions.*;
298
import static org.mockito.ArgumentMatchers.any;
309
import static org.mockito.Mockito.mock;
3110
import static org.mockito.Mockito.mockStatic;
3211

33-
import java.util.ArrayList;
34-
import java.util.Arrays;
35-
import java.util.Collections;
36-
import java.util.List;
37-
import java.util.Set;
38-
import java.util.UUID;
12+
import java.util.*;
3913
import java.util.stream.Collectors;
4014

4115
import javax.persistence.EntityNotFoundException;
4216
import javax.validation.ValidationException;
4317

18+
import org.junit.jupiter.api.Assertions;
4419
import org.junit.jupiter.api.BeforeEach;
4520
import org.junit.jupiter.api.Test;
4621
import org.mockito.MockedStatic;
@@ -50,12 +25,9 @@
5025
import de.symeda.sormas.api.AuthProvider;
5126
import de.symeda.sormas.api.Disease;
5227
import de.symeda.sormas.api.EntityDto;
28+
import de.symeda.sormas.api.ReferenceDto;
5329
import de.symeda.sormas.api.infrastructure.region.RegionReferenceDto;
54-
import de.symeda.sormas.api.user.UserCriteria;
55-
import de.symeda.sormas.api.user.UserDto;
56-
import de.symeda.sormas.api.user.UserFacade;
57-
import de.symeda.sormas.api.user.UserReferenceDto;
58-
import de.symeda.sormas.api.user.UserRight;
30+
import de.symeda.sormas.api.user.*;
5931
import de.symeda.sormas.api.utils.AccessDeniedException;
6032
import de.symeda.sormas.api.utils.SortProperty;
6133
import de.symeda.sormas.backend.AbstractBeanTest;
@@ -309,6 +281,27 @@ public void testGetUserRefsByDistrictsWithLimitedDiseaseUsers() {
309281

310282
}
311283

284+
@Test
285+
public void testGetUserRefsByRegionForResponsibleSurveillanceOfficer() {
286+
RDCF rdcf = creator.createRDCF();
287+
RDCF rdcfOther = creator.createRDCF("otherRegion", "oderDistrict", "otherCommunity", "otherFacility");
288+
289+
UserDto surveilanceOfficerDefault = creator.createSurveillanceOfficer(rdcf);
290+
UserDto surveilanceSupervisorDefault = creator.createSurveillanceSupervisor(rdcf);
291+
UserDto adminSupervisorDefault = creator.createUser(rdcf, "Admin", "Supervisor", creator.getUserRoleReference(ADMIN_SUPERVISOR));
292+
UserDto adminSupervisorOther = creator.createUser(rdcfOther, "Admin", "Supervisor Other", creator.getUserRoleReference(ADMIN_SUPERVISOR));
293+
294+
List<UserReferenceDto> userReferenceDtos =
295+
getUserFacade().getUsersByRegionAndRights(rdcf.region, Disease.CORONAVIRUS, UserRight.CASE_RESPONSIBLE);
296+
assertNotNull(userReferenceDtos);
297+
assertEquals(3, userReferenceDtos.size());
298+
List<String> userReferenceUUIDs = userReferenceDtos.stream().map(u -> u.getUuid()).collect(Collectors.toList());
299+
assertTrue(userReferenceUUIDs.contains(surveilanceOfficerDefault.getUuid()));
300+
assertTrue(userReferenceUUIDs.contains(surveilanceSupervisorDefault.getUuid()));
301+
assertTrue(userReferenceUUIDs.contains(adminSupervisorDefault.getUuid()));
302+
assertFalse(userReferenceUUIDs.contains(adminSupervisorOther.getUuid()));
303+
}
304+
312305
@Test
313306
public void testGetUserRefsByDistrictsForResponsibleSurveillanceOfficer() {
314307
RDCF rdcf = creator.createRDCF();
@@ -329,6 +322,42 @@ public void testGetUserRefsByDistrictsForResponsibleSurveillanceOfficer() {
329322
assertFalse(userReferenceUUIDs.contains(adminSupervisorOther.getUuid()));
330323
}
331324

325+
@Test
326+
public void testGetUserRefsByDistrictsForResponsibleSurveillanceOfficer_national_user() {
327+
RDCF rdcf = creator.createRDCF();
328+
329+
UserDto surveilanceOfficerDefault = creator.createSurveillanceOfficer(rdcf);
330+
UserDto surveilanceSupervisorDefault = creator.createSurveillanceSupervisor(rdcf);
331+
UserDto nationalUser = creator.createUser(rdcf, "national", "user", creator.getUserRoleReference(NATIONAL_USER));
332+
333+
List<UserReferenceDto> userReferenceDtos = getUserFacade().getUserRefsByDistricts(Arrays.asList(rdcf.district), Disease.CORONAVIRUS);
334+
List<String> userReferenceUUIDs = userReferenceDtos.stream().map(ReferenceDto::getUuid).collect(Collectors.toList());
335+
336+
Assertions.assertAll(
337+
() -> assertEquals(4, userReferenceDtos.size()),
338+
() -> assertTrue(userReferenceUUIDs.contains(surveilanceOfficerDefault.getUuid())),
339+
() -> assertTrue(userReferenceUUIDs.contains(surveilanceSupervisorDefault.getUuid())),
340+
() -> assertTrue(userReferenceUUIDs.contains(nationalUser.getUuid())));
341+
}
342+
343+
@Test
344+
public void testGetUserRefsByRegionForResponsibleSurveillanceOfficer_national_user() {
345+
RDCF rdcf = creator.createRDCF();
346+
347+
UserDto surveilanceOfficerDefault = creator.createSurveillanceOfficer(rdcf);
348+
UserDto surveilanceSupervisorDefault = creator.createSurveillanceSupervisor(rdcf);
349+
UserDto nationalUser = creator.createUser(rdcf, "national", "user", creator.getUserRoleReference(NATIONAL_USER));
350+
351+
List<UserReferenceDto> userReferenceDtos = getUserFacade().getUsersByRegionAndRights(rdcf.region, Disease.CORONAVIRUS);
352+
List<String> userReferenceUUIDs = userReferenceDtos.stream().map(ReferenceDto::getUuid).collect(Collectors.toList());
353+
354+
Assertions.assertAll(
355+
() -> assertEquals(4, userReferenceDtos.size()),
356+
() -> assertTrue(userReferenceUUIDs.contains(surveilanceOfficerDefault.getUuid())),
357+
() -> assertTrue(userReferenceUUIDs.contains(surveilanceSupervisorDefault.getUuid())),
358+
() -> assertTrue(userReferenceUUIDs.contains(nationalUser.getUuid())));
359+
}
360+
332361
@Test
333362
public void testGetUserRefsByDistrictsWithLimitedDiseaseUsersSingleDistrict() {
334363

0 commit comments

Comments
 (0)