@Test
public void refreshAccessToken_tokenExpiry() throws IOException {
final String tokenString = "1/MkSJoj1xsli0AccessToken_NKPY2";
MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory();
MockTokenServerTransport transport = transportFactory.transport;
ServiceAccountCredentials credentials =
ServiceAccountCredentials.fromPkcs8(
SA_CLIENT_ID,
SA_CLIENT_EMAIL,
SA_PRIVATE_KEY_PKCS8,
SA_PRIVATE_KEY_ID,
SCOPES,
transportFactory,
null);
credentials.clock = new FixedClock(0L);
transport.addServiceAccount(SA_CLIENT_EMAIL, tokenString);
AccessToken accessToken = credentials.refreshAccessToken();
assertEquals(tokenString, accessToken.getTokenValue());
assertEquals(3600 * 1000L, accessToken.getExpirationTimeMillis().longValue());
transport.setExpiresInSeconds(3600 * 1000);
accessToken = credentials.refreshAccessToken();
assertEquals(tokenString, accessToken.getTokenValue());
assertEquals(3600 * 1000 * 1000L, accessToken.getExpirationTimeMillis().longValue());
}