use of com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.GetDetailsHandler in project aws-sdk-android by aws-amplify.
the class CognitoUser method getDetailsInBackground.
/**
* Retrieves the current user attributes. Runs in background.
* <p>
* All attributes, which are set for this user, are fetched. This method
* requires valid accessToken.
* </p>
*
* @param callback REQUIRED: {@link GetDetailsHandler} callback
*/
public void getDetailsInBackground(final GetDetailsHandler callback) {
if (callback == null) {
throw new CognitoParameterInvalidException("callback is null");
}
final CognitoUser user = this;
new Thread(new Runnable() {
@Override
public void run() {
final Handler handler = new Handler(context.getMainLooper());
Runnable returnCallback;
try {
final CognitoUserSession session = user.getCachedSession();
final CognitoUserDetails userDetails = getUserDetailsInternal(session);
returnCallback = new Runnable() {
@Override
public void run() {
callback.onSuccess(userDetails);
}
};
} catch (final Exception e) {
returnCallback = new Runnable() {
@Override
public void run() {
callback.onFailure(e);
}
};
}
handler.post(returnCallback);
}
}).start();
}
use of com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.GetDetailsHandler in project aws-sdk-android by aws-amplify.
the class CognitoIdentityProviderGetUserTest method getUserAttributeInBackgroundWithCachedTokens.
// Get user attributes - in background
@Test
public void getUserAttributeInBackgroundWithCachedTokens() {
testPool = new CognitoUserPool(appContext, TEST_USER_POOL, TEST_CLIENT_ID, TEST_CLIENT_SECRET, mockCSIClient);
testUser = testPool.getUser(TEST_USER_NAME);
// Set mock result for the change password request API call
doReturn(TEST_VALID_GET_USER_RESULT).when(mockCSIClient).getUser(any(GetUserRequest.class));
// Store tokens in shared preferences
SharedPreferences sharedPreferences = appContext.getSharedPreferences("CognitoIdentityProviderCache", Context.MODE_PRIVATE);
sharedPreferences.edit().putString("CognitoIdentityProvider." + TEST_CLIENT_ID + "." + TEST_USER_NAME + "." + "idToken", getValidJWT(3600L)).commit();
sharedPreferences.edit().putString("CognitoIdentityProvider." + TEST_CLIENT_ID + "." + TEST_USER_NAME + "." + "accessToken", getValidJWT(3600L)).commit();
sharedPreferences.edit().putString("CognitoIdentityProvider." + TEST_CLIENT_ID + "." + TEST_USER_NAME + "." + "refreshToken", TEST_CACHED_RTOKEN).commit();
testUser.getDetailsInBackground(new GetDetailsHandler() {
@Override
public void onSuccess(CognitoUserDetails details) {
// Extract the arguments passed to get user API call
ArgumentCaptor<GetUserRequest> argumentCaptor = ArgumentCaptor.forClass(GetUserRequest.class);
verify(mockCSIClient).getUser(argumentCaptor.capture());
GetUserRequest requestSent = argumentCaptor.getValue();
// Verify the arguments passed to the API call
assertNotNull(requestSent);
assertNotNull(requestSent.getAccessToken());
// Verify result
assertNotNull(details);
}
@Override
public void onFailure(Exception exception) {
assertNotNull(exception);
}
});
}
use of com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.GetDetailsHandler in project aws-sdk-android by aws-amplify.
the class CognitoIdentityProviderGetUserTest method getUserAttributeInCurrentThreadWithNoCachedTokens.
@Test
public void getUserAttributeInCurrentThreadWithNoCachedTokens() {
testPool = new CognitoUserPool(appContext, TEST_USER_POOL, TEST_CLIENT_ID, TEST_CLIENT_SECRET, mockCSIClient);
testUser = testPool.getUser(TEST_USER_NAME);
// Set mock result for the change password request API call
doReturn(TEST_VALID_GET_USER_RESULT).when(mockCSIClient).getUser(any(GetUserRequest.class));
testUser.getDetails(new GetDetailsHandler() {
@Override
public void onSuccess(CognitoUserDetails details) {
// Extract the arguments passed to get user API call
assertTrue(false);
}
@Override
public void onFailure(Exception exception) {
assertNotNull(exception);
}
});
}
use of com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.GetDetailsHandler in project aws-sdk-android by aws-amplify.
the class CognitoIdentityProviderGetUserTest method getUserAttributeInBackgroundWithCachedTokensServiceException.
// Get user attributes - in background
@Test
public void getUserAttributeInBackgroundWithCachedTokensServiceException() {
testPool = new CognitoUserPool(appContext, TEST_USER_POOL, TEST_CLIENT_ID, TEST_CLIENT_SECRET, mockCSIClient);
testUser = testPool.getUser(TEST_USER_NAME);
// Set mock result for the change password request API call
InvalidParameterException exception = new InvalidParameterException("registration failed");
doThrow(exception).when(mockCSIClient).getUser(any(GetUserRequest.class));
// Store tokens in shared preferences
SharedPreferences sharedPreferences = appContext.getSharedPreferences("CognitoIdentityProviderCache", Context.MODE_PRIVATE);
sharedPreferences.edit().putString("CognitoIdentityProvider." + TEST_CLIENT_ID + "." + TEST_USER_NAME + "." + "idToken", getValidJWT(3600L)).commit();
sharedPreferences.edit().putString("CognitoIdentityProvider." + TEST_CLIENT_ID + "." + TEST_USER_NAME + "." + "accessToken", getValidJWT(3600L)).commit();
sharedPreferences.edit().putString("CognitoIdentityProvider." + TEST_CLIENT_ID + "." + TEST_USER_NAME + "." + "refreshToken", TEST_CACHED_RTOKEN).commit();
testUser.getDetailsInBackground(new GetDetailsHandler() {
@Override
public void onSuccess(CognitoUserDetails details) {
// Extract the arguments passed to get user API call
ArgumentCaptor<GetUserRequest> argumentCaptor = ArgumentCaptor.forClass(GetUserRequest.class);
verify(mockCSIClient).getUser(argumentCaptor.capture());
GetUserRequest requestSent = argumentCaptor.getValue();
// Verify the arguments passed to the API call
assertNotNull(requestSent);
assertNotNull(requestSent.getAccessToken());
// Verify result
assertNotNull(details);
}
@Override
public void onFailure(Exception exception) {
assertNotNull(exception);
}
});
}
use of com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.GetDetailsHandler in project aws-sdk-android by aws-amplify.
the class CognitoIdentityProviderGetUserTest method getUserAttributeInBackgroundWithNoCachedTokens.
@Test
public void getUserAttributeInBackgroundWithNoCachedTokens() {
testPool = new CognitoUserPool(appContext, TEST_USER_POOL, TEST_CLIENT_ID, TEST_CLIENT_SECRET, mockCSIClient);
testUser = testPool.getUser(TEST_USER_NAME);
// Set mock result for the change password request API call
doReturn(TEST_VALID_GET_USER_RESULT).when(mockCSIClient).getUser(any(GetUserRequest.class));
testUser.getDetailsInBackground(new GetDetailsHandler() {
@Override
public void onSuccess(CognitoUserDetails details) {
// Extract the arguments passed to get user API call
assertTrue(false);
}
@Override
public void onFailure(Exception exception) {
assertNotNull(exception);
}
});
}
Aggregations