use of com.amazonaws.mobileconnectors.appsync.AWSAppSyncClientException in project aws-mobile-appsync-sdk-android by awslabs.
the class MultiClientInstrumentationTest method testQueryPostsWithAllResponseFetchersAndMultipleClients.
@Test
public void testQueryPostsWithAllResponseFetchersAndMultipleClients() {
final ResponseFetcher[] appSyncResponseFetchers = new ResponseFetcher[] { AppSyncResponseFetchers.NETWORK_FIRST, AppSyncResponseFetchers.NETWORK_ONLY, AppSyncResponseFetchers.CACHE_FIRST };
for (ResponseFetcher appSyncResponseFetcher : appSyncResponseFetchers) {
Log.d(TAG, "Response Fetcher: " + appSyncResponseFetcher.toString());
Map<String, AWSAppSyncClient> appSyncClientMap = new HashMap<>();
appSyncClientMap.put("AMAZON_COGNITO_USER_POOLS", AWSAppSyncClients.withUserPoolsFromAWSConfiguration(appSyncResponseFetcher));
appSyncClientMap.put("AMAZON_COGNITO_USER_POOLS_2", AWSAppSyncClients.withUserPools2FromAWSConfiguration(idToken, appSyncResponseFetcher));
for (final String clientName : appSyncClientMap.keySet()) {
// List Posts
final AWSAppSyncClient awsAppSyncClient = appSyncClientMap.get(clientName);
Log.d(TAG, "AWSAppSyncClient for clientName: " + clientName + "; client: " + awsAppSyncClient);
assertNotNull(awsAppSyncClient);
Map<String, Response<AllPostsQuery.Data>> listPostsResponses = Posts.list(awsAppSyncClient, appSyncResponseFetcher);
Response<AllPostsQuery.Data> allPostsResponse = listPostsResponses.get("CACHE") != null ? listPostsResponses.get("CACHE") : listPostsResponses.get("NETWORK");
assertNotNull(allPostsResponse);
assertNotNull(allPostsResponse.data());
AllPostsQuery.ListPosts listPosts = allPostsResponse.data().listPosts();
assertNotNull(listPosts);
List<AllPostsQuery.Item> items = listPosts.items();
assertNotNull(items);
// Loop over the list and query each post
String postID;
for (AllPostsQuery.Item item : items) {
postID = item.id();
Map<String, Response<GetPostQuery.Data>> getPostResponses = Posts.query(awsAppSyncClient, appSyncResponseFetcher, postID);
if (clientName.equals("API_KEY") || clientName.equals("AWS_IAM")) {
assertResponseForQueryPost(appSyncResponseFetcher, getPostResponses, postID);
} else if (clientName.startsWith("AMAZON_COGNITO_USER_POOLS")) {
assertResponseForQueryPostWithUserPools(appSyncResponseFetcher, getPostResponses, postID);
}
}
}
// Clear the cache
for (final String clientName : appSyncClientMap.keySet()) {
final AWSAppSyncClient awsAppSyncClient = appSyncClientMap.get(clientName);
assertNotNull(awsAppSyncClient);
try {
awsAppSyncClient.clearCaches();
} catch (AWSAppSyncClientException e) {
fail("Error in clearing the cache." + e);
}
}
}
}
Aggregations