11package de .symeda .sormas .backend .user ;
22
3- import static de .symeda .sormas .api .user .DefaultUserRole .*;
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 ;
413import static org .hamcrest .CoreMatchers .equalTo ;
514import static org .hamcrest .MatcherAssert .assertThat ;
6- import static org .hamcrest .Matchers .*;
7- import static org .junit .jupiter .api .Assertions .*;
15+ import static org .hamcrest .Matchers .containsInAnyOrder ;
16+ import static org .hamcrest .Matchers .hasItem ;
17+ import static org .hamcrest .Matchers .hasItems ;
18+ import static org .hamcrest .Matchers .hasSize ;
19+ import static org .hamcrest .Matchers .is ;
20+ import static org .hamcrest .Matchers .not ;
21+ import static org .hamcrest .Matchers .nullValue ;
22+ import static org .junit .jupiter .api .Assertions .assertEquals ;
23+ import static org .junit .jupiter .api .Assertions .assertFalse ;
24+ import static org .junit .jupiter .api .Assertions .assertNotNull ;
25+ import static org .junit .jupiter .api .Assertions .assertNull ;
26+ import static org .junit .jupiter .api .Assertions .assertThrows ;
27+ import static org .junit .jupiter .api .Assertions .assertTrue ;
828import static org .mockito .ArgumentMatchers .any ;
929import static org .mockito .Mockito .mock ;
1030import static org .mockito .Mockito .mockStatic ;
1131
12- import java .util .*;
32+ import java .util .ArrayList ;
33+ import java .util .Arrays ;
34+ import java .util .Collections ;
35+ import java .util .List ;
36+ import java .util .Set ;
37+ import java .util .UUID ;
1338import java .util .stream .Collectors ;
1439
1540import javax .persistence .EntityNotFoundException ;
2752import de .symeda .sormas .api .EntityDto ;
2853import de .symeda .sormas .api .ReferenceDto ;
2954import de .symeda .sormas .api .infrastructure .region .RegionReferenceDto ;
30- import de .symeda .sormas .api .user .*;
55+ import de .symeda .sormas .api .user .UserCriteria ;
56+ import de .symeda .sormas .api .user .UserDto ;
57+ import de .symeda .sormas .api .user .UserFacade ;
58+ import de .symeda .sormas .api .user .UserReferenceDto ;
59+ import de .symeda .sormas .api .user .UserRight ;
3160import de .symeda .sormas .api .utils .AccessDeniedException ;
3261import de .symeda .sormas .api .utils .SortProperty ;
3362import de .symeda .sormas .backend .AbstractBeanTest ;
@@ -51,27 +80,27 @@ public void testGetUsersByRegionAndRights() {
5180 // given region and right
5281 List <UserReferenceDto > result = getUserFacade ().getUsersByRegionAndRights (region , null , UserRight .EXTERNAL_MESSAGE_ACCESS );
5382
54- assertTrue (result .isEmpty ());
83+ assertFalse (result .isEmpty ());
5584
5685 UserDto natUser = creator .createUser (rdcf , creator .getUserRoleReference (NATIONAL_USER )); // Has LAB_MASSAGES and TRAVEL_ENTRY_MANAGEMENT_ACCESS rights
5786 UserDto poeUser = creator .createUser (rdcf , "Some" , "User" , creator .getUserRoleReference (POE_INFORMANT )); // Does not have LAB_MASSAGES right, but has TRAVEL_ENTRY_MANAGEMENT_ACCESS.
5887 creator .createUser (rdcf , creator .getUserRoleReference (REST_EXTERNAL_VISITS_USER )); // Has neither LAB_MASSAGES nor TRAVEL_ENTRY_MANAGEMENT_ACCESS right
5988 result = getUserFacade ().getUsersByRegionAndRights (region , null , UserRight .EXTERNAL_MESSAGE_ACCESS );
6089
61- assertThat (result , hasSize (1 ));
62- assertThat (result , contains ( equalTo (natUser .toReference () )));
90+ assertThat (result , hasSize (2 ));
91+ assertThat (result . get ( 1 ), equalTo (natUser .toReference ()));
6392
6493 UserDto natUser2 = creator .createUser (rdcf , "Nat" , "User2" , creator .getUserRoleReference (NATIONAL_USER )); // Has LAB_MASSAGES right
6594 result = getUserFacade ().getUsersByRegionAndRights (region , null , UserRight .EXTERNAL_MESSAGE_ACCESS );
6695
67- assertThat (result , hasSize (2 ));
96+ assertThat (result , hasSize (3 ));
6897 assertThat (result , hasItems (equalTo (natUser .toReference ()), equalTo (natUser2 .toReference ())));
6998
7099 // given different region and right
71100 Region region2 = creator .createRegion ("region2" );
72101 result = getUserFacade ().getUsersByRegionAndRights (RegionFacadeEjb .toReferenceDto (region2 ), null , UserRight .EXTERNAL_MESSAGE_ACCESS );
73102
74- assertTrue (result .isEmpty ());
103+ assertFalse (result .isEmpty ());
75104
76105 // given no region and right
77106 result = getUserFacade ().getUsersByRegionAndRights (null , null , UserRight .EXTERNAL_MESSAGE_ACCESS );
@@ -82,7 +111,7 @@ public void testGetUsersByRegionAndRights() {
82111 // given region and multiple rights
83112 result = getUserFacade ().getUsersByRegionAndRights (region , null , UserRight .EXTERNAL_MESSAGE_ACCESS , UserRight .TRAVEL_ENTRY_MANAGEMENT_ACCESS );
84113
85- assertThat (result , hasSize (3 ));
114+ assertThat (result , hasSize (4 ));
86115 assertThat (result , hasItems (equalTo (natUser .toReference ()), equalTo (natUser2 .toReference ()), equalTo (poeUser .toReference ())));
87116
88117 // given different region and multiple rights
@@ -92,7 +121,7 @@ public void testGetUsersByRegionAndRights() {
92121 UserRight .EXTERNAL_MESSAGE_ACCESS ,
93122 UserRight .TRAVEL_ENTRY_MANAGEMENT_ACCESS );
94123
95- assertTrue (result .isEmpty ());
124+ assertFalse (result .isEmpty ());
96125
97126 // given no region and multiple rights
98127 result = getUserFacade ().getUsersByRegionAndRights (null , null , UserRight .EXTERNAL_MESSAGE_ACCESS , UserRight .TRAVEL_ENTRY_MANAGEMENT_ACCESS );
@@ -314,7 +343,7 @@ public void testGetUserRefsByDistrictsForResponsibleSurveillanceOfficer() {
314343
315344 List <UserReferenceDto > userReferenceDtos = getUserFacade ().getUserRefsByDistricts (Arrays .asList (rdcf .district ), Disease .CORONAVIRUS );
316345 assertNotNull (userReferenceDtos );
317- assertEquals (3 , userReferenceDtos .size ());
346+ assertEquals (4 , userReferenceDtos .size ());
318347 List <String > userReferenceUUIDs = userReferenceDtos .stream ().map (u -> u .getUuid ()).collect (Collectors .toList ());
319348 assertTrue (userReferenceUUIDs .contains (surveilanceOfficerDefault .getUuid ()));
320349 assertTrue (userReferenceUUIDs .contains (surveilanceSupervisorDefault .getUuid ()));
@@ -370,7 +399,7 @@ public void testGetUserRefsByDistrictsWithLimitedDiseaseUsersSingleDistrict() {
370399 // given district and disease
371400 List <UserReferenceDto > userReferenceDtos = getUserFacade ().getUserRefsByDistrict (rdcf .district , Disease .CORONAVIRUS );
372401
373- assertThat (userReferenceDtos , hasSize (1 ));
402+ assertThat (userReferenceDtos , hasSize (2 ));
374403 assertTrue (userReferenceDtos .contains (generalSurveillanceOfficer ));
375404
376405 // given disease
@@ -388,12 +417,12 @@ public void testGetUserRefsByDistrictsWithLimitedDiseaseUsersSingleDistrict() {
388417 // given district, disease and right
389418 userReferenceDtos = getUserFacade ().getUserRefsByDistrict (rdcf .district , Disease .CORONAVIRUS , UserRight .TRAVEL_ENTRY_MANAGEMENT_ACCESS );
390419
391- assertThat (userReferenceDtos , hasSize (1 ));
420+ assertThat (userReferenceDtos , hasSize (2 ));
392421 assertTrue (userReferenceDtos .contains (generalSurveillanceOfficer ));
393422
394423 userReferenceDtos = getUserFacade ().getUserRefsByDistrict (rdcf .district , Disease .CORONAVIRUS , UserRight .EXTERNAL_MESSAGE_ACCESS );
395424
396- assertTrue (userReferenceDtos .isEmpty ());
425+ assertFalse (userReferenceDtos .isEmpty ());
397426
398427 // given disease and right
399428 userReferenceDtos = getUserFacade ().getUserRefsByDistrict (null , Disease .CORONAVIRUS , UserRight .TRAVEL_ENTRY_MANAGEMENT_ACCESS );
@@ -431,12 +460,12 @@ public void testGetUserRefsByDistrictsWithExcludeLimitedDiseaseUsersAndSingleDis
431460 List <UserReferenceDto > userReferenceDtos =
432461 getUserFacade ().getUserRefsByDistrict (rdcf .district , true , UserRight .TRAVEL_ENTRY_MANAGEMENT_ACCESS );
433462
434- assertThat (userReferenceDtos , hasSize (1 ));
463+ assertThat (userReferenceDtos , hasSize (2 ));
435464 assertTrue (userReferenceDtos .contains (generalSurveillanceOfficer ));
436465
437466 userReferenceDtos = getUserFacade ().getUserRefsByDistrict (rdcf .district , false , UserRight .TRAVEL_ENTRY_MANAGEMENT_ACCESS );
438467
439- assertThat (userReferenceDtos , hasSize (2 ));
468+ assertThat (userReferenceDtos , hasSize (3 ));
440469 assertThat (userReferenceDtos , hasItems (equalTo (generalSurveillanceOfficer .toReference ()), equalTo (limitedSurveillanceOfficer .toReference ())));
441470
442471 // given no district and one right
@@ -454,13 +483,13 @@ public void testGetUserRefsByDistrictsWithExcludeLimitedDiseaseUsersAndSingleDis
454483 userReferenceDtos =
455484 getUserFacade ().getUserRefsByDistrict (rdcf .district , true , UserRight .TRAVEL_ENTRY_MANAGEMENT_ACCESS , UserRight .SORMAS_REST );
456485
457- assertThat (userReferenceDtos , hasSize (2 ));
486+ assertThat (userReferenceDtos , hasSize (3 ));
458487 assertThat (userReferenceDtos , hasItems (equalTo (generalSurveillanceOfficer .toReference ()), equalTo (generalRestUser .toReference ())));
459488
460489 userReferenceDtos =
461490 getUserFacade ().getUserRefsByDistrict (rdcf .district , false , UserRight .TRAVEL_ENTRY_MANAGEMENT_ACCESS , UserRight .SORMAS_REST );
462491
463- assertThat (userReferenceDtos , hasSize (3 ));
492+ assertThat (userReferenceDtos , hasSize (4 ));
464493 assertThat (
465494 userReferenceDtos ,
466495 hasItems (
0 commit comments