com.google.api.client.testing.util.MockBackOff

Here are the examples of the java api class com.google.api.client.testing.util.MockBackOff taken from open source projects.

1. BackOffUtilsTest#subtestNext()

Project: google-http-java-client
File: BackOffUtilsTest.java
public void subtestNext(long millis) throws Exception {
    MockSleeper sleeper = new MockSleeper();
    MockBackOff backOff = new MockBackOff().setBackOffMillis(millis);
    if (millis == BackOff.STOP) {
        backOff.setMaxTries(0);
    }
    int retries = 0;
    while (retries <= backOff.getMaxTries() + 1) {
        boolean next = BackOffUtils.next(sleeper, backOff);
        assertEquals(retries < backOff.getMaxTries(), next);
        if (next) {
            retries++;
        }
        assertEquals(retries, sleeper.getCount());
        assertEquals(retries, backOff.getNumberOfTries());
        if (!next) {
            break;
        }
        assertEquals(millis, sleeper.getLastMillis());
    }
}

2. HttpRequestTest#testBackOffUnsucessfulResponseStop()

Project: google-http-java-client
File: HttpRequestTest.java
public void testBackOffUnsucessfulResponseStop() throws Exception {
    int callsBeforeSuccess = 5;
    FailThenSuccessBackoffTransport fakeTransport = new FailThenSuccessBackoffTransport(HttpStatusCodes.STATUS_CODE_SERVER_ERROR, callsBeforeSuccess);
    MockHttpUnsuccessfulResponseHandler handler = new MockHttpUnsuccessfulResponseHandler(false);
    HttpRequest req = fakeTransport.createRequestFactory().buildGetRequest(new GenericUrl("http://not/used"));
    MockBackOff backOff = new MockBackOff().setMaxTries(1);
    setBackOffUnsuccessfulResponseHandler(req, backOff, handler);
    try {
        req.execute();
    } catch (HttpResponseException e) {
    }
    Assert.assertEquals(2, fakeTransport.lowLevelExecCalls);
    // The back-off should be called only once, since the its max tries is set to 1
    Assert.assertEquals(1, backOff.getNumberOfTries());
    Assert.assertTrue(handler.isCalled());
}

3. HttpRequestTest#testBackOffUnsuccessfulReponseUnRecognizedStatusCode()

Project: google-http-java-client
File: HttpRequestTest.java
public void testBackOffUnsuccessfulReponseUnRecognizedStatusCode() throws Exception {
    FailThenSuccessBackoffTransport fakeTransport = new FailThenSuccessBackoffTransport(HttpStatusCodes.STATUS_CODE_UNAUTHORIZED, 1);
    MockHttpUnsuccessfulResponseHandler handler = new MockHttpUnsuccessfulResponseHandler(false);
    HttpRequest req = fakeTransport.createRequestFactory().buildGetRequest(new GenericUrl("http://not/used"));
    MockBackOff backOff = new MockBackOff();
    setBackOffUnsuccessfulResponseHandler(req, backOff, handler);
    try {
        req.execute();
    } catch (HttpResponseException e) {
    }
    Assert.assertEquals(1, fakeTransport.lowLevelExecCalls);
    // The back-off should not be called since it does not support 401 status codes.
    Assert.assertEquals(0, backOff.getNumberOfTries());
    Assert.assertTrue(handler.isCalled());
}

4. HttpRequestTest#testBackOffUnsuccessfulReponseCallsBeyondRetryLimit()

Project: google-http-java-client
File: HttpRequestTest.java
public void testBackOffUnsuccessfulReponseCallsBeyondRetryLimit() throws Exception {
    int callsBeforeSuccess = 11;
    FailThenSuccessBackoffTransport fakeTransport = new FailThenSuccessBackoffTransport(HttpStatusCodes.STATUS_CODE_SERVER_ERROR, callsBeforeSuccess);
    MockHttpUnsuccessfulResponseHandler handler = new MockHttpUnsuccessfulResponseHandler(false);
    HttpRequest req = fakeTransport.createRequestFactory().buildGetRequest(new GenericUrl("http://not/used"));
    req.setNumberOfRetries(callsBeforeSuccess - 1);
    MockBackOff backOff = new MockBackOff();
    setBackOffUnsuccessfulResponseHandler(req, backOff, handler);
    try {
        req.execute();
        fail("expected HttpResponseException");
    } catch (HttpResponseException e) {
    }
    Assert.assertEquals(callsBeforeSuccess, fakeTransport.lowLevelExecCalls);
    Assert.assertEquals(callsBeforeSuccess - 1, backOff.getMaxTries());
    Assert.assertTrue(handler.isCalled());
}

5. HttpRequestTest#testBackOffUnsucessfulReponseMultipleCalls()

Project: google-http-java-client
File: HttpRequestTest.java
public void testBackOffUnsucessfulReponseMultipleCalls() throws Exception {
    int callsBeforeSuccess = 5;
    FailThenSuccessBackoffTransport fakeTransport = new FailThenSuccessBackoffTransport(HttpStatusCodes.STATUS_CODE_SERVER_ERROR, callsBeforeSuccess);
    MockHttpUnsuccessfulResponseHandler handler = new MockHttpUnsuccessfulResponseHandler(false);
    HttpRequest req = fakeTransport.createRequestFactory().buildGetRequest(new GenericUrl("http://not/used"));
    MockBackOff backOff = new MockBackOff();
    setBackOffUnsuccessfulResponseHandler(req, backOff, handler);
    HttpResponse resp = req.execute();
    Assert.assertEquals(200, resp.getStatusCode());
    Assert.assertEquals(callsBeforeSuccess + 1, fakeTransport.lowLevelExecCalls);
    Assert.assertEquals(callsBeforeSuccess, backOff.getNumberOfTries());
    Assert.assertTrue(handler.isCalled());
}

6. HttpRequestTest#testBackOffUnsuccessfulResponseSingleCall()

Project: google-http-java-client
File: HttpRequestTest.java
public void testBackOffUnsuccessfulResponseSingleCall() throws Exception {
    FailThenSuccessBackoffTransport fakeTransport = new FailThenSuccessBackoffTransport(HttpStatusCodes.STATUS_CODE_SERVER_ERROR, 1);
    MockHttpUnsuccessfulResponseHandler handler = new MockHttpUnsuccessfulResponseHandler(false);
    HttpRequest req = fakeTransport.createRequestFactory().buildGetRequest(new GenericUrl("http://not/used"));
    MockBackOff backOff = new MockBackOff();
    setBackOffUnsuccessfulResponseHandler(req, backOff, handler);
    HttpResponse resp = req.execute();
    Assert.assertEquals(200, resp.getStatusCode());
    Assert.assertEquals(2, fakeTransport.lowLevelExecCalls);
    Assert.assertEquals(1, backOff.getNumberOfTries());
    Assert.assertTrue(handler.isCalled());
}

7. HttpRequestTest#testAbnormalResponseHandlerWithBackOffUnsuccessfulResponseHandler()

Project: google-http-java-client
File: HttpRequestTest.java
public void testAbnormalResponseHandlerWithBackOffUnsuccessfulResponseHandler() throws Exception {
    FailThenSuccessBackoffTransport fakeTransport = new FailThenSuccessBackoffTransport(HttpStatusCodes.STATUS_CODE_SERVER_ERROR, 1);
    MockHttpUnsuccessfulResponseHandler handler = new MockHttpUnsuccessfulResponseHandler(true);
    HttpRequest req = fakeTransport.createRequestFactory().buildGetRequest(new GenericUrl("http://not/used"));
    MockBackOff backOff = new MockBackOff();
    setBackOffUnsuccessfulResponseHandler(req, backOff, handler);
    HttpResponse resp = req.execute();
    Assert.assertEquals(200, resp.getStatusCode());
    Assert.assertEquals(2, fakeTransport.lowLevelExecCalls);
    Assert.assertEquals(0, backOff.getNumberOfTries());
    Assert.assertTrue(handler.isCalled());
}

8. HttpRequestTest#test301RedirectWithBackOffUnsuccessfulResponseNotHandled()

Project: google-http-java-client
File: HttpRequestTest.java
public void test301RedirectWithBackOffUnsuccessfulResponseNotHandled() throws Exception {
    // Create an Unsuccessful response handler that always returns false.
    MockHttpUnsuccessfulResponseHandler handler = new MockHttpUnsuccessfulResponseHandler(false);
    // Set up RedirectTransport to redirect on the first request and then return success.
    RedirectTransport fakeTransport = new RedirectTransport();
    HttpRequest request = fakeTransport.createRequestFactory().buildGetRequest(new GenericUrl("http://gmail.com"));
    MockBackOff backOff = new MockBackOff();
    setBackOffUnsuccessfulResponseHandler(request, backOff, handler);
    HttpResponse resp = request.execute();
    Assert.assertEquals(200, resp.getStatusCode());
    // Assert that the redirect logic was invoked because the response handler could not handle the
    // request. The request url should have changed from http://gmail.com to http://google.com
    Assert.assertEquals(HttpTesting.SIMPLE_URL, request.getUrl().toString());
    Assert.assertEquals(2, fakeTransport.lowLevelExecCalls);
    // Assert that the backoff was not invoked since it's not required for 3xx errors
    Assert.assertEquals(0, backOff.getNumberOfTries());
}

9. HttpRequestTest#test301RedirectWithBackOffUnsuccessfulResponseHandled()

Project: google-http-java-client
File: HttpRequestTest.java
public void test301RedirectWithBackOffUnsuccessfulResponseHandled() throws Exception {
    MockHttpUnsuccessfulResponseHandler handler = new MockHttpUnsuccessfulResponseHandler(true);
    // Set up RedirectTransport to redirect on the first request and then return success.
    RedirectTransport fakeTransport = new RedirectTransport();
    HttpRequest request = fakeTransport.createRequestFactory().buildGetRequest(new GenericUrl("http://gmail.com"));
    MockBackOff backOff = new MockBackOff();
    setBackOffUnsuccessfulResponseHandler(request, backOff, handler);
    HttpResponse resp = request.execute();
    Assert.assertEquals(200, resp.getStatusCode());
    Assert.assertEquals(2, fakeTransport.lowLevelExecCalls);
    // Assert that the redirect logic was not invoked because the response handler could handle the
    // request. The request url should be the original http://gmail.com
    Assert.assertEquals("http://gmail.com", request.getUrl().toString());
    // Assert that the backoff was not invoked since the response handler could handle the request
    Assert.assertEquals(0, backOff.getNumberOfTries());
    Assert.assertTrue(handler.isCalled());
}