use of com.okta.oidc.Tokens in project okta-oidc-android by okta.
the class SyncAuthClientTest method signInNative.
@Test
public void signInNative() throws AuthorizationException, OktaRepository.EncryptionException {
String nonce = CodeVerifierUtil.generateRandomState();
String state = CodeVerifierUtil.generateRandomState();
String jws = TestValues.getJwt(mEndPoint.getUrl(), nonce, mConfig.getClientId());
AuthenticationPayload payload = new AuthenticationPayload.Builder().addParameter("nonce", nonce).setState(state).build();
mEndPoint.enqueueNativeRequestSuccess(state);
mEndPoint.enqueueTokenSuccess(jws);
Result result = mSyncNativeAuth.signIn(SESSION_TOKEN, payload);
assertNotNull(result);
Tokens tokens = new Tokens(mOktaState.getTokenResponse());
assertNotNull(tokens);
assertNotNull(tokens.getAccessToken());
assertNotNull(tokens.getRefreshToken());
assertNotNull(tokens.getIdToken());
}
use of com.okta.oidc.Tokens in project okta-oidc-android by okta.
the class SessionClientImplTest method refreshTokenInParallel.
@Test
public void refreshTokenInParallel() throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(2);
String nonce = CodeVerifierUtil.generateRandomState();
String jws = TestValues.getJwt(mEndPoint.getUrl(), nonce, mConfig.getClientId());
mEndPoint.enqueueTokenSuccess(jws);
MockRequestCallback<Tokens, AuthorizationException> cb = new MockRequestCallback<>(latch);
MockRequestCallback<Tokens, AuthorizationException> cb2 = new MockRequestCallback<>(latch);
new Thread(() -> mSessionClient.refreshToken(cb)).start();
new Thread(() -> mSessionClient.refreshToken(cb2)).start();
latch.await();
Tokens result = cb.getResult();
Tokens result2 = cb2.getResult();
TokenResponse original = mGson.fromJson(String.format(TOKEN_SUCCESS, jws), TokenResponse.class);
assertEquals(original.getIdToken(), result.getIdToken());
assertEquals(original.getRefreshToken(), result.getRefreshToken());
assertEquals(original.getIdToken(), result.getIdToken());
assertEquals(result, result2);
}
use of com.okta.oidc.Tokens in project okta-oidc-android by okta.
the class SessionClientImplTest method refreshTokenFailure.
@Test
public void refreshTokenFailure() throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(1);
mEndPoint.enqueueReturnInvalidClient();
MockRequestCallback<Tokens, AuthorizationException> cb = new MockRequestCallback<>(latch);
mSessionClient.refreshToken(cb);
latch.await();
assertNull(cb.getResult());
assertNotNull(cb.getException());
assertEquals(cb.getException().getMessage(), "No client credentials found.");
assertEquals(cb.getException().type, TYPE_OAUTH_TOKEN_ERROR);
}
use of com.okta.oidc.Tokens in project okta-oidc-android by okta.
the class SessionClientImplTest method requestsAreRunInSerial.
@Test
public void requestsAreRunInSerial() throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(2);
MockRequestCallback<UserInfo, AuthorizationException> userProfileCallback = new MockRequestCallback<>(latch);
mEndPoint.enqueueUserInfoSuccess();
mSessionClient.getUserProfile(userProfileCallback);
String nonce = CodeVerifierUtil.generateRandomState();
String jws = TestValues.getJwt(mEndPoint.getUrl(), nonce, mConfig.getClientId());
mEndPoint.enqueueTokenSuccess(jws);
MockRequestCallback<Tokens, AuthorizationException> refreshCallback = new MockRequestCallback<>(latch);
mSessionClient.refreshToken(refreshCallback);
latch.await();
UserInfo userInfoResult = userProfileCallback.getResult();
assertNotNull(userInfoResult);
assertEquals("John Doe", userInfoResult.get("name"));
assertEquals("Jimmy", userInfoResult.get("nickname"));
Tokens result = refreshCallback.getResult();
TokenResponse original = mGson.fromJson(String.format(TOKEN_SUCCESS, jws), TokenResponse.class);
assertEquals(original.getIdToken(), result.getIdToken());
assertEquals(original.getRefreshToken(), result.getRefreshToken());
assertEquals(original.getIdToken(), result.getIdToken());
}
use of com.okta.oidc.Tokens in project okta-oidc-android by okta.
the class SessionClientImplTest method refreshTokenFailureInParallelCallbackCycle.
@Test
public void refreshTokenFailureInParallelCallbackCycle() throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(1);
String nonce = CodeVerifierUtil.generateRandomState();
String jws = TestValues.getJwt(mEndPoint.getUrl(), nonce, mConfig.getClientId());
mEndPoint.enqueueTokenSuccess(jws);
MockRequestCallback<Tokens, AuthorizationException> errorCb = new MockRequestCallback<>(latch);
RequestCallback<Tokens, AuthorizationException> cb = new RequestCallback<Tokens, AuthorizationException>() {
@Override
public void onSuccess(@NonNull Tokens result) {
try {
mSessionClient.refreshToken(errorCb);
} catch (RuntimeException runtimeException) {
assertEquals(runtimeException.getMessage(), "refreshToken can't be called from callback.");
latch.countDown();
}
}
@Override
public void onError(String error, AuthorizationException exception) {
fail();
}
};
mSessionClient.refreshToken(cb);
latch.await();
}
Aggregations