1+ package invite .cron ;
2+
3+ import com .fasterxml .jackson .core .JsonProcessingException ;
4+ import invite .model .Authority ;
5+ import invite .model .Role ;
6+ import invite .model .User ;
7+ import invite .model .UserRole ;
8+ import invite .provision .ProvisioningService ;
9+ import invite .provision .scim .OperationType ;
10+ import invite .repository .UserRepository ;
11+ import invite .repository .UserRoleRepository ;
12+ import org .junit .jupiter .api .Test ;
13+
14+ import java .io .Serializable ;
15+ import java .time .Instant ;
16+ import java .time .Period ;
17+ import java .util .List ;
18+ import java .util .Map ;
19+
20+ import static invite .AbstractTest .GUEST_SUB ;
21+ import static org .junit .jupiter .api .Assertions .assertEquals ;
22+ import static org .mockito .ArgumentMatchers .any ;
23+ import static org .mockito .Mockito .*;
24+ import static org .mockito .Mockito .when ;
25+
26+ class ResourceCleanerUnitTest {
27+
28+ private final UserRepository userRepository = mock (UserRepository .class );
29+ private final UserRoleRepository userRoleRepository = mock (UserRoleRepository .class );
30+ private final ProvisioningService provisioningService = mock (ProvisioningService .class );
31+
32+ private final ResourceCleaner subject = new ResourceCleaner (userRepository ,
33+ userRoleRepository ,
34+ provisioningService ,
35+ 5 ,
36+ true );
37+
38+
39+ @ Test
40+ void cleanUsers () {
41+ List <User > users = List .of (new User (), new User ());
42+ when (userRepository .findByLastActivityBefore (any (Instant .class )))
43+ .thenReturn (users );
44+ when (userRepository .findNonSuperUserWithoutUserRoles ())
45+ .thenReturn (users );
46+ when (userRoleRepository .findByEndDateBeforeAndExpiryNotifications (any (Instant .class ),eq (1 )))
47+ .thenReturn (List .of (new UserRole ("Inviter" , new User (), new Role (), Authority .INVITER )));
48+
49+ doThrow (new RuntimeException ())
50+ .when (provisioningService )
51+ .deleteUserRequest (any (User .class ));
52+ doThrow (new RuntimeException ())
53+ .when (provisioningService )
54+ .updateGroupRequest (any (UserRole .class ), eq (OperationType .Remove ));
55+
56+ Map <String , List <? extends Serializable >> results = subject .doClean ();
57+ assertEquals (2 , results .get ("DeletedNonActiveUsers" ).size ());
58+ assertEquals (2 , results .get ("DeletedOrphanUsers" ).size ());
59+ assertEquals (1 , results .get ("DeletedExpiredUserRoles" ).size ());
60+ }
61+
62+ @ Test
63+ void cleanUsersWithoutRoles () {
64+ }
65+
66+ @ Test
67+ void cleanUserRoles () {
68+ }
69+
70+
71+ }
0 commit comments