@@ -318,14 +318,15 @@ public void validateAppTokenProviderAsync() throws Exception{
318318 IClientCredential iClientCredential = ClientCredentialFactory .createFromClientAssertion (
319319 clientAssertion .assertion ());
320320
321+ Long refreshInSeconds = new Date ().getTime () / 1000 + + 800000 ;
321322 //builds client with AppTokenProvider
322323 ConfidentialClientApplication cca = ConfidentialClientApplication .
323324 builder (TestConfiguration .AAD_CLIENT_ID , iClientCredential )
324325 .appTokenProvider ((parameters ) -> {
325326 Assert .assertNotNull (parameters .scopes );
326327 Assert .assertNotNull (parameters .correlationId );
327328 Assert .assertNotNull (parameters .tenantId );
328- return getAppTokenProviderResult ("/default" );
329+ return getAppTokenProviderResult ("/default" , refreshInSeconds );
329330 })
330331 .build ();
331332
@@ -338,6 +339,10 @@ public void validateAppTokenProviderAsync() throws Exception{
338339 Assert .assertNotNull (result1 .accessToken ());
339340
340341 Assert .assertEquals (cca .tokenCache .accessTokens .size (), 1 );
342+ //check that refreshOn is set correctly when provided by an app developer
343+ Assert .assertNotNull (cca .tokenCache .accessTokens .values ().iterator ().next ().refreshOn ());
344+ Assert .assertEquals (cca .tokenCache .accessTokens .values ().iterator ().next ().refreshOn (), refreshInSeconds .toString ());
345+ System .out .println (cca .tokenCache .accessTokens .values ().iterator ().next ().refreshOn ());
341346
342347 //Acquire token from cache
343348
@@ -356,7 +361,7 @@ public void validateAppTokenProviderAsync() throws Exception{
356361 Assert .assertNotNull (parameters .scopes );
357362 Assert .assertNotNull (parameters .correlationId );
358363 Assert .assertNotNull (parameters .tenantId );
359- return getAppTokenProviderResult ("/newScope" );
364+ return getAppTokenProviderResult ("/newScope" , 0L );
360365 })
361366 .build ();
362367
@@ -369,17 +374,20 @@ public void validateAppTokenProviderAsync() throws Exception{
369374
370375 Assert .assertNotEquals (result2 .accessToken (), result3 .accessToken ());
371376 Assert .assertEquals (cca .tokenCache .accessTokens .size (), 1 );
372-
377+ //check that refreshOn is set correctly when a value is not provided by an app developer
378+ Assert .assertNotNull (cca .tokenCache .accessTokens .values ().iterator ().next ().refreshOn ());
379+ System .out .println (cca .tokenCache .accessTokens .values ().iterator ().next ().refreshOn ());
373380 }
374381
375- private CompletableFuture <TokenProviderResult > getAppTokenProviderResult (String differentScopesForAt )
382+ private CompletableFuture <TokenProviderResult > getAppTokenProviderResult (String differentScopesForAt ,
383+ long refreshInSeconds )
376384 {
377385 long currTimestampSec = new Date ().getTime () / 1000 ;
378386 TokenProviderResult token = new TokenProviderResult ();
379387 token .setAccessToken (TestConstants .DEFAULT_ACCESS_TOKEN + differentScopesForAt ); //Used to indicate that there is a new access token for a different set of scopes
380388 token .setTenantId ("tenantId" );
381389 token .setExpiresInSeconds (currTimestampSec + 1000000 );
382- token .setRefreshInSeconds (currTimestampSec + 800000 );
390+ token .setRefreshInSeconds (refreshInSeconds );
383391
384392 return CompletableFuture .completedFuture (token );
385393 }
0 commit comments