77import static org .junit .Assert .assertEquals ;
88import static org .junit .Assert .assertThrows ;
99import static org .mockito .ArgumentMatchers .any ;
10+ import static org .mockito .Mockito .atLeastOnce ;
1011import static org .mockito .Mockito .doAnswer ;
1112import static org .mockito .Mockito .mock ;
12- import static org .mockito .Mockito .mockConstruction ;
1313import static org .mockito .Mockito .never ;
14- import static org .mockito .Mockito .spy ;
1514import static org .mockito .Mockito .times ;
1615import static org .mockito .Mockito .verify ;
1716
2221import org .hamcrest .Matchers ;
2322import org .junit .Test ;
2423import org .mockito .ArgumentCaptor ;
25- import org .mockito .MockedConstruction ;
26- import org .mockito .Mockito ;
27- import redis .clients .authentication .core .AuthXManager ;
28- import redis .clients .authentication .core .AuthXManagerFactory ;
24+
2925import redis .clients .authentication .core .IdentityProvider ;
30- import redis .clients .authentication .core .IdentityProviderConfig ;
3126import redis .clients .authentication .core .SimpleToken ;
3227import redis .clients .authentication .core .Token ;
33- import redis .clients .authentication .core .TokenAuthConfig ;
3428import redis .clients .authentication .core .TokenListener ;
3529import redis .clients .authentication .core .TokenManager ;
3630import redis .clients .authentication .core .TokenManagerConfig ;
3933
4034public class CoreAuthenticationUnitTests {
4135
42- public static class CustomAuthXManager extends AuthXManager {
43-
44- public CustomAuthXManager (TokenManager tokenManager ) {
45- super (tokenManager );
46- }
47- }
48-
49- @ Test
50- public void testAuthXManagerFactory () {
51- TokenManagerConfig tokenManagerConfig = mock (TokenManagerConfig .class );
52- IdentityProviderConfig identityProviderConfig = mock (IdentityProviderConfig .class );
53- IdentityProvider identityProvider = mock (IdentityProvider .class );
54-
55- when (identityProviderConfig .getProvider ()).thenReturn (identityProvider );
56-
57- try (MockedConstruction <TokenManager > mockedConstructor = mockConstruction (TokenManager .class ,
58- (mock , context ) -> {
59- assertEquals (identityProvider , context .arguments ().get (0 ));
60- assertEquals (tokenManagerConfig , context .arguments ().get (1 ));
61- })) {
62- AuthXManagerFactory .create (new TokenAuthConfig (tokenManagerConfig , identityProviderConfig ));
63-
64- AuthXManagerFactory .create (CustomAuthXManager .class ,
65- new TokenAuthConfig (tokenManagerConfig , identityProviderConfig ));
66- }
67- }
68-
6936 public static class TokenManagerConfigWrapper extends TokenManagerConfig {
7037 int lower ;
7138 float ratio ;
@@ -159,7 +126,8 @@ public void testCalculateRenewalDelay() {
159126 }
160127
161128 @ Test
162- public void testAuthXManager () throws InterruptedException , ExecutionException , TimeoutException {
129+ public void testTokenManagerStart ()
130+ throws InterruptedException , ExecutionException , TimeoutException {
163131
164132 IdentityProvider identityProvider = () -> new SimpleToken ("tokenVal" ,
165133 System .currentTimeMillis () + 5 * 1000 , System .currentTimeMillis (),
@@ -168,16 +136,15 @@ public void testAuthXManager() throws InterruptedException, ExecutionException,
168136 TokenManager tokenManager = new TokenManager (identityProvider ,
169137 new TokenManagerConfig (0.7F , 200 , 2000 , null ));
170138
171- AuthXManager manager = spy (new AuthXManager (tokenManager ));
172-
139+ TokenListener listener = mock (TokenListener .class );
173140 final Token [] tokenHolder = new Token [1 ];
174141 doAnswer (invocation -> {
175142 Object [] args = invocation .getArguments ();
176143 tokenHolder [0 ] = (Token ) args [0 ];
177144 return null ;
178- }).when (manager ). authenticateConnections (any ());
145+ }).when (listener ). onTokenRenewed (any ());
179146
180- manager .start (true );
147+ tokenManager .start (listener , true );
181148 assertEquals (tokenHolder [0 ].getValue (), "tokenVal" );
182149 }
183150
@@ -190,8 +157,8 @@ public void testBlockForInitialToken() {
190157 TokenManager tokenManager = new TokenManager (identityProvider ,
191158 new TokenManagerConfig (0.7F , 200 , 2000 , new TokenManagerConfig .RetryPolicy (5 , 100 )));
192159
193- AuthXManager manager = new AuthXManager ( tokenManager );
194- ExecutionException e = assertThrows ( ExecutionException . class , ( ) -> manager .start (true ));
160+ ExecutionException e = assertThrows ( ExecutionException . class ,
161+ ( ) -> tokenManager .start (mock ( TokenListener . class ), true ));
195162
196163 assertEquals ("java.lang.RuntimeException: Test exception from identity provider!" ,
197164 e .getCause ().getCause ().getMessage ());
@@ -210,12 +177,12 @@ public void testNoBlockForInitialToken()
210177 TokenManager tokenManager = new TokenManager (identityProvider , new TokenManagerConfig (0.7F , 200 ,
211178 2000 , new TokenManagerConfig .RetryPolicy (numberOfRetries - 1 , 100 )));
212179
213- AuthXManager manager = spy ( new AuthXManager ( tokenManager ) );
214- manager .start (false );
180+ TokenListener listener = mock ( TokenListener . class );
181+ tokenManager .start (listener , false );
215182
216183 requesLatch .await ();
217- verify (manager , Mockito . atLeastOnce ()).onError (Mockito . any ());
218- verify (manager , Mockito . never ()).authenticateConnections ( Mockito . any ());
184+ verify (listener , atLeastOnce ()).onError (any ());
185+ verify (listener , never ()).onTokenRenewed ( any ());
219186 }
220187
221188 @ Test
@@ -273,12 +240,12 @@ public void testTokenManagerWithHangingTokenRequest()
273240 TokenManager tokenManager = new TokenManager (identityProvider , new TokenManagerConfig (0.7F , 200 ,
274241 executionTimeout , new TokenManagerConfig .RetryPolicy (numberOfRetries , 100 )));
275242
276- AuthXManager manager = spy ( new AuthXManager ( tokenManager ) );
277- manager .start (false );
243+ TokenListener listener = mock ( TokenListener . class );
244+ tokenManager .start (listener , false );
278245 requesLatch .await ();
279- verify (manager , never ()).onError (any ());
246+ verify (listener , never ()).onError (any ());
280247 await ().atMost (2 , TimeUnit .SECONDS ).untilAsserted (() -> {
281- verify (manager , times (1 )).authenticateConnections (any ());
248+ verify (listener , times (1 )).onTokenRenewed (any ());
282249 });
283250 }
284251}
0 commit comments