@Test
  public void testGetAccessTokenWithScope() {
    Date beforeRequest = new Date();
    List<String> scopes = new ArrayList<>();
    scopes.add("https://www.googleapis.com/auth/urlshortener");
    AppIdentityService.GetAccessTokenResult tokenResult = appIdentity.getAccessToken(scopes);

    Assert.assertNotNull(tokenResult);
    Assert.assertTrue("Token should not be blank.", !tokenResult.getAccessToken().isEmpty());

    String errMsg =
        "Expiration time should at least be after request time. "
            + dateDebugStr("Before-Request", beforeRequest)
            + ", "
            + dateDebugStr("Expiration-Time=", tokenResult.getExpirationTime());
    Assert.assertTrue(errMsg, beforeRequest.getTime() < tokenResult.getExpirationTime().getTime());
    log.info(
        "AccessToken: "
            + tokenResult.getAccessToken()
            + " Expiration: "
            + tokenResult.getExpirationTime());

    // Retrieve it again, should be same since it grabs it from a cache.
    AppIdentityService.GetAccessTokenResult tokenResult2 = appIdentity.getAccessToken(scopes);

    Assert.assertEquals(tokenResult.getAccessToken(), tokenResult2.getAccessToken());
  }