@Test
 public void backsOffForServiceUnavailable() {
   final HttpResponse resp =
       new BasicHttpResponse(
           HttpVersion.HTTP_1_1, HttpStatus.SC_SERVICE_UNAVAILABLE, "Service Unavailable");
   assertTrue(impl.shouldBackoff(resp));
 }
 @Test
 public void doesNotBackOffForNon503StatusCodes() {
   for (int i = 100; i <= 599; i++) {
     if (i == HttpStatus.SC_SERVICE_UNAVAILABLE) {
       continue;
     }
     final HttpResponse resp = new BasicHttpResponse(HttpVersion.HTTP_1_1, i, "Foo");
     assertFalse(impl.shouldBackoff(resp));
   }
 }
 @Test
 public void backsOffForConnectionTimeouts() {
   assertTrue(impl.shouldBackoff(new ConnectException()));
 }
 @Test
 public void doesNotBackOffForConnectionManagerTimeout() {
   assertFalse(impl.shouldBackoff(new ConnectionPoolTimeoutException()));
 }
 @Test
 public void backsOffForSocketTimeouts() {
   assertTrue(impl.shouldBackoff(new SocketTimeoutException()));
 }