junits for HttpClientRedirectStrategy 85/72185/2
authorTomasz Gwozdecki <tomasz.gwozdecki@nokia.com>
Thu, 8 Nov 2018 10:17:59 +0000 (05:17 -0500)
committerRob Daugherty <rd472p@att.com>
Wed, 14 Nov 2018 20:53:00 +0000 (20:53 +0000)
-Added new test for HttpClientRedirectStrategy
-Tests for method getRedirect

Change-Id: Ifb8cd2becc515ed349ecaed99b5b2f902b253b03
Issue-ID: SO-814
Signed-off-by: Tomasz Gwozdecki <tomasz.gwozdecki@nokia.com>
cloudify-client/src/test/java/org/onap/so/cloudify/connector/http/HttpClientRedirectStrategyTest.java

index b631dab..87b51e9 100644 (file)
@@ -105,6 +105,33 @@ public class HttpClientRedirectStrategyTest {
         assertThat(httpUriRequest.getURI()).isEqualTo(expectedUri);
     }
 
+    @Test
+    public void getRedirect_shouldCopyHttpRequestAndSetNewUri_forMovedTemporarilyStatus() throws URISyntaxException, ProtocolException {
+        assertHttpRequestIsCopied(HttpStatus.SC_MOVED_TEMPORARILY);
+    }
+
+    @Test
+    public void getRedirect_shouldCopyHttpRequestAndSetNewUri_forTemporaryRedirectStatus() throws URISyntaxException, ProtocolException {
+        assertHttpRequestIsCopied(HttpStatus.SC_TEMPORARY_REDIRECT);
+    }
+
+    private void assertHttpRequestIsCopied(int expectedHttpStatus) throws URISyntaxException, ProtocolException {
+        // GIVEN
+        HttpRequest request = mock(HttpRequest.class, RETURNS_DEEP_STUBS);
+        given(request.getRequestLine().getMethod()).willReturn(HttpGet.METHOD_NAME);
+        given(request.getRequestLine().getUri()).willReturn("http://hostname");
+        HttpResponse response = mock(HttpResponse.class, RETURNS_DEEP_STUBS);
+        given(response.getStatusLine().getStatusCode()).willReturn(expectedHttpStatus);
+        URI expectedUri = new URI("http://localhost/host");
+        HttpContext context = null;
+        // WHEN
+        HttpUriRequest httpUriRequest = new TestableHttpClientRedirectStrategy(expectedUri)
+            .getRedirect(request, response, context);
+        // THEN
+        assertThat(httpUriRequest).isInstanceOf(HttpGet.class);
+        assertThat(httpUriRequest.getURI()).isEqualTo(expectedUri);
+    }
+
     private static class TestableHttpClientRedirectStrategy extends HttpClientRedirectStrategy {
 
         private final URI expectedUri;
@@ -112,7 +139,6 @@ public class HttpClientRedirectStrategyTest {
         public TestableHttpClientRedirectStrategy(URI expectedUri) {
             this.expectedUri = expectedUri;
         }
-
         @Override
         public URI getLocationURI(HttpRequest request, HttpResponse response, HttpContext context) {
             return expectedUri;