11package 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 .*;
134import static org .hamcrest .CoreMatchers .equalTo ;
145import 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 .*;
298import static org .mockito .ArgumentMatchers .any ;
309import static org .mockito .Mockito .mock ;
3110import 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 .*;
3913import java .util .stream .Collectors ;
4014
4115import javax .persistence .EntityNotFoundException ;
4216import javax .validation .ValidationException ;
4317
18+ import org .junit .jupiter .api .Assertions ;
4419import org .junit .jupiter .api .BeforeEach ;
4520import org .junit .jupiter .api .Test ;
4621import org .mockito .MockedStatic ;
5025import de .symeda .sormas .api .AuthProvider ;
5126import de .symeda .sormas .api .Disease ;
5227import de .symeda .sormas .api .EntityDto ;
28+ import de .symeda .sormas .api .ReferenceDto ;
5329import 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 .*;
5931import de .symeda .sormas .api .utils .AccessDeniedException ;
6032import de .symeda .sormas .api .utils .SortProperty ;
6133import 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