View Javadoc

1   package com.atlassian.asap.core.keys.publickey;
2   
3   import org.apache.http.HttpResponse;
4   import org.apache.http.StatusLine;
5   import org.apache.http.protocol.HttpContext;
6   import org.junit.Before;
7   import org.junit.Test;
8   import org.junit.runner.RunWith;
9   import org.mockito.Mock;
10  import org.mockito.runners.MockitoJUnitRunner;
11  
12  import static org.hamcrest.Matchers.is;
13  import static org.junit.Assert.assertThat;
14  import static org.mockito.Mockito.when;
15  
16  @RunWith(MockitoJUnitRunner.class)
17  public class S3ServiceUnavailableRetryStrategyTest {
18      @Mock
19      private HttpResponse httpResponse;
20  
21      @Mock
22      private HttpContext httpContext;
23  
24      @Mock
25      private StatusLine statusLine;
26  
27      private S3ServiceUnavailableRetryStrategy retryStrategy;
28  
29      @Before
30      public void createSut() {
31          retryStrategy = new S3ServiceUnavailableRetryStrategy(2, 100);
32      }
33  
34      @Test
35      public void shouldRetryOn500() {
36          when(httpResponse.getStatusLine()).thenReturn(statusLine);
37          when(statusLine.getStatusCode()).thenReturn(500);
38  
39          assertThat(retryStrategy.retryRequest(httpResponse, 1, httpContext), is(true));
40      }
41  
42      @Test
43      public void shouldNotRetryOn400() {
44          when(httpResponse.getStatusLine()).thenReturn(statusLine);
45          when(statusLine.getStatusCode()).thenReturn(400);
46  
47          assertThat(retryStrategy.retryRequest(httpResponse, 1, httpContext), is(false));
48      }
49  
50      @Test
51      public void shouldStopRetrying() {
52          when(httpResponse.getStatusLine()).thenReturn(statusLine);
53          when(statusLine.getStatusCode()).thenReturn(500);
54  
55          assertThat(retryStrategy.retryRequest(httpResponse, 5, httpContext), is(false));
56      }
57  
58  }