Add test for redirect 41/71141/1
authorelinuxhenrik <henrik.b.andersson@est.tech>
Wed, 24 Oct 2018 12:02:10 +0000 (14:02 +0200)
committerelinuxhenrik <henrik.b.andersson@est.tech>
Wed, 24 Oct 2018 12:02:41 +0000 (14:02 +0200)
Change-Id: Ic8cc9c6ba63267498c24ba05267301a6b499c9dc
Issue-ID: DCAEGEN2-835
Signed-off-by: elinuxhenrik <henrik.b.andersson@est.tech>
datafile-dmaap-client/src/test/java/org/onap/dcaegen2/collectors/datafile/web/PublishRedirectStrategyTest.java

index fb0cc29..0ed3c72 100644 (file)
 
 package org.onap.dcaegen2.collectors.datafile.web;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.apache.http.Header;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpResponse;
+import org.apache.http.ProtocolException;
+import org.apache.http.RequestLine;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.protocol.HttpContext;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
 class PublishRedirectStrategyTest {
 
+    private static final String URI = "sftp://localhost:80/";
+
     private static PublishRedirectStrategy publishRedirectStrategy;
 
 
@@ -39,4 +54,22 @@ class PublishRedirectStrategyTest {
     void isRedirectable_shouldReturnFalse() {
         Assertions.assertFalse(publishRedirectStrategy.isRedirectable("not valid method"));
     }
+
+    @Test
+    void getRedirect_shouldReturnCorrectUri() throws ProtocolException {
+        HttpRequest requestMock = mock(HttpRequest.class);
+        HttpResponse responseMock = mock(HttpResponse.class);
+        HttpContext contextMock = mock(HttpContext.class);
+        Header headerMock = mock(Header.class);
+        when(responseMock.getFirstHeader("location")).thenReturn(headerMock);
+        when(headerMock.getValue()).thenReturn(URI);
+        RequestConfig requestConfigMock = mock(RequestConfig.class);
+        when(contextMock.getAttribute(HttpClientContext.REQUEST_CONFIG)).thenReturn(requestConfigMock);
+        RequestLine requestLineMock = mock(RequestLine.class);
+        when(requestMock.getRequestLine()).thenReturn(requestLineMock);
+        when(requestLineMock.getUri()).thenReturn(URI);
+
+        HttpUriRequest actualRedirect = publishRedirectStrategy.getRedirect(requestMock, responseMock, contextMock);
+        assertEquals(URI, actualRedirect.getURI().toString());
+    }
 }