@MediumTest @LargeTest public void testExecuteSingleGet() { Request request = new Request( null, "TourEiffel", null, null, new ExpectSuccessCallback() { @Override protected void performAsserts(Response response) { assertNotNull(response); GraphPlace graphPlace = response.getGraphObjectAs(GraphPlace.class); assertEquals("Paris", graphPlace.getLocation().getCity()); } }); TestRequestAsyncTask task = new TestRequestAsyncTask(request); task.executeOnBlockerThread(); // Wait on 2 signals: request and task will both signal. waitAndAssertSuccess(2); }
@MediumTest @LargeTest public void testExecuteSingleGetFailureCase() { Request request = new Request(null, "-1", null, null, new ExpectFailureCallback()); TestRequestAsyncTask task = new TestRequestAsyncTask(request); task.executeOnBlockerThread(); // Wait on 2 signals: request and task will both signal. waitAndAssertSuccess(2); }
@LargeTest public void testBatchUploadPhoto() { TestSession session = openTestSessionWithSharedUserAndPermissions(null, "user_photos"); final int image1Size = 120; final int image2Size = 150; Bitmap bitmap1 = createTestBitmap(image1Size); Bitmap bitmap2 = createTestBitmap(image2Size); Request uploadRequest1 = Request.newUploadPhotoRequest(session, bitmap1, null); uploadRequest1.setBatchEntryName("uploadRequest1"); Request uploadRequest2 = Request.newUploadPhotoRequest(session, bitmap2, null); uploadRequest2.setBatchEntryName("uploadRequest2"); Request getRequest1 = new Request( session, "{result=uploadRequest1:$.id}", null, null, new ExpectSuccessCallback() { @Override protected void performAsserts(Response response) { assertNotNull(response); GraphObject retrievedPhoto = response.getGraphObject(); assertNotNull(retrievedPhoto); assertEquals(image1Size, retrievedPhoto.getProperty("width")); } }); Request getRequest2 = new Request( session, "{result=uploadRequest2:$.id}", null, null, new ExpectSuccessCallback() { @Override protected void performAsserts(Response response) { assertNotNull(response); GraphObject retrievedPhoto = response.getGraphObject(); assertNotNull(retrievedPhoto); assertEquals(image2Size, retrievedPhoto.getProperty("width")); } }); TestRequestAsyncTask task = new TestRequestAsyncTask(uploadRequest1, uploadRequest2, getRequest1, getRequest2); task.executeOnBlockerThread(); // Wait on 3 signals: getRequest1, getRequest2, and task will all signal. waitAndAssertSuccess(3); }
@SmallTest @MediumTest @LargeTest public void testBatchWithoutAppIDIsError() throws Throwable { Request request1 = new Request(null, "TourEiffel", null, null, new ExpectFailureCallback()); Request request2 = new Request(null, "SpaceNeedle", null, null, new ExpectFailureCallback()); TestRequestAsyncTask task = new TestRequestAsyncTask(request1, request2); task.executeOnBlockerThread(); // Wait on 3 signals: request1, request2, and task will all signal. waitAndAssertSuccessOrRethrow(3); }
@SmallTest @MediumTest @LargeTest public void testExecuteBatchWithNullRequestThrows() throws Exception { try { TestRequestAsyncTask task = new TestRequestAsyncTask(new Request[] {null}); task.executeOnBlockerThread(); waitAndAssertSuccessOrRethrow(1); fail("expected NullPointerException"); } catch (NullPointerException exception) { } }
@SmallTest @MediumTest @LargeTest public void testExecuteBatchWithZeroRequestsThrows() throws Exception { try { TestRequestAsyncTask task = new TestRequestAsyncTask(new Request[] {}); task.executeOnBlockerThread(); waitAndAssertSuccessOrRethrow(1); fail("expected IllegalArgumentException"); } catch (IllegalArgumentException exception) { } }
@LargeTest public void testLongTimeoutAllowsSuccess() { TestSession session = openTestSessionWithSharedUser(); Request request = new Request(session, "me", null, null, new ExpectSuccessCallback()); RequestBatch requestBatch = new RequestBatch(request); // 10 second timeout should be long enough for successful response from server. requestBatch.setTimeout(10000); TestRequestAsyncTask task = new TestRequestAsyncTask(requestBatch); task.executeOnBlockerThread(); // Note: plus 1, because the overall async task signals as well. waitAndAssertSuccess(2); }
@MediumTest @LargeTest public void testShortTimeoutCausesFailure() { TestSession session = openTestSessionWithSharedUser(); Request request = new Request(session, "me/likes", null, null, new ExpectFailureCallback()); RequestBatch requestBatch = new RequestBatch(request); // 1 millisecond timeout should be too short for response from server. requestBatch.setTimeout(1); TestRequestAsyncTask task = new TestRequestAsyncTask(requestBatch); task.executeOnBlockerThread(); // Note: plus 1, because the overall async task signals as well. waitAndAssertSuccess(2); }
@LargeTest public void testMixedSuccessAndFailure() { TestSession session = openTestSessionWithSharedUser(); final int NUM_REQUESTS = 8; Request[] requests = new Request[NUM_REQUESTS]; for (int i = 0; i < NUM_REQUESTS; ++i) { boolean shouldSucceed = (i % 2) == 1; if (shouldSucceed) { requests[i] = new Request(session, "me", null, null, new ExpectSuccessCallback()); } else { requests[i] = new Request(session, "-1", null, null, new ExpectFailureCallback()); } } TestRequestAsyncTask task = new TestRequestAsyncTask(requests); task.executeOnBlockerThread(); // Note: plus 1, because the overall async task signals as well. waitAndAssertSuccess(NUM_REQUESTS + 1); }