|
@@ -43,8 +43,10 @@ import java.io.InputStream;
|
|
|
import java.io.InputStreamReader;
|
|
|
import java.net.HttpURLConnection;
|
|
|
import java.util.Map;
|
|
|
-import java.util.List;
|
|
|
+import java.util.LinkedList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.Collections;
|
|
|
+import java.util.List;
|
|
|
|
|
|
import static org.easymock.EasyMock.createMock;
|
|
|
import static org.easymock.EasyMock.expect;
|
|
@@ -60,13 +62,22 @@ class ProxyServiceTest extends BaseServiceTest {
|
|
|
URLStreamProvider streamProviderMock = PowerMock.createNiceMock(URLStreamProvider.class);
|
|
|
HttpURLConnection urlConnectionMock = createMock(HttpURLConnection.class);
|
|
|
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
|
|
|
+ MultivaluedMap<String, String> headerParams = new MultivaluedMapImpl();
|
|
|
+ Map<String, List<String>> headerParamsToForward = new HashMap<String, List<String>>();
|
|
|
Response.ResponseBuilder responseBuilderMock = PowerMock.createMock(ResponseBuilderImpl.class);
|
|
|
Response responseMock = createMock(ResponseImpl.class);
|
|
|
queryParams.add("url","testurl");
|
|
|
+ headerParams.add("AmbariProxy-User-Remote","testuser");
|
|
|
+ headerParams.add("Content-Type","testtype");
|
|
|
+ List<String> userRemoteParams = new LinkedList<String>();
|
|
|
+ userRemoteParams.add("testuser");
|
|
|
+ headerParamsToForward.put("User-Remote", userRemoteParams);
|
|
|
InputStream is = new ByteArrayInputStream("test".getBytes());
|
|
|
PowerMock.mockStatic(Response.class);
|
|
|
+ expect(getHttpHeaders().getRequestHeaders()).andReturn(headerParams);
|
|
|
+ expect(getHttpHeaders().getRequestHeader("AmbariProxy-User-Remote")).andReturn(userRemoteParams);
|
|
|
expect(getUriInfo().getQueryParameters()).andReturn(queryParams);
|
|
|
- expect(streamProviderMock.processURL("testurl", "GET", null, APPLICATION_FORM_URLENCODED)).andReturn(urlConnectionMock);
|
|
|
+ expect(streamProviderMock.processURL("testurl", "GET", null, headerParamsToForward)).andReturn(urlConnectionMock);
|
|
|
expect(urlConnectionMock.getResponseCode()).andReturn(200);
|
|
|
expect(urlConnectionMock.getContentType()).andReturn("text/plain");
|
|
|
expect(urlConnectionMock.getInputStream()).andReturn(is);
|
|
@@ -76,7 +87,7 @@ class ProxyServiceTest extends BaseServiceTest {
|
|
|
expect(responseBuilderMock.type("text/plain")).andReturn(responseBuilderMock);
|
|
|
expect(responseBuilderMock.build()).andReturn(responseMock);
|
|
|
PowerMock.replay(streamProviderMock, URLStreamProvider.class, Response.class, responseBuilderMock);
|
|
|
- replay(getUriInfo(), urlConnectionMock);
|
|
|
+ replay(getUriInfo(), urlConnectionMock, getHttpHeaders());
|
|
|
Response resultForGetRequest = ps.processGetRequestForwarding(getHttpHeaders(),getUriInfo());
|
|
|
assertSame(resultForGetRequest, responseMock);
|
|
|
}
|
|
@@ -87,14 +98,23 @@ class ProxyServiceTest extends BaseServiceTest {
|
|
|
URLStreamProvider streamProviderMock = PowerMock.createNiceMock(URLStreamProvider.class);
|
|
|
HttpURLConnection urlConnectionMock = createMock(HttpURLConnection.class);
|
|
|
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
|
|
|
+ MultivaluedMap<String, String> headerParams = new MultivaluedMapImpl();
|
|
|
+ Map<String, List<String>> headerParamsToForward = new HashMap<String, List<String>>();
|
|
|
Response.ResponseBuilder responseBuilderMock = PowerMock.createMock(ResponseBuilderImpl.class);
|
|
|
Response responseMock = createMock(ResponseImpl.class);
|
|
|
queryParams.add("url","testurl");
|
|
|
+ headerParams.add("AmbariProxy-User-Remote","testuser");
|
|
|
+ headerParams.add("Content-Type","testtype");
|
|
|
+ List<String> userRemoteParams = new LinkedList<String>();
|
|
|
+ userRemoteParams.add("testuser");
|
|
|
+ headerParamsToForward.put("User-Remote", userRemoteParams);
|
|
|
InputStream is = new ByteArrayInputStream("test".getBytes());
|
|
|
PowerMock.mockStatic(Response.class);
|
|
|
+ expect(getHttpHeaders().getRequestHeaders()).andReturn(headerParams);
|
|
|
+ expect(getHttpHeaders().getRequestHeader("AmbariProxy-User-Remote")).andReturn(userRemoteParams);
|
|
|
expect(getUriInfo().getQueryParameters()).andReturn(queryParams);
|
|
|
expect(getHttpHeaders().getMediaType()).andReturn(APPLICATION_FORM_URLENCODED_TYPE);
|
|
|
- expect(streamProviderMock.processURL("testurl", "POST", "testbody", APPLICATION_FORM_URLENCODED)).andReturn(urlConnectionMock);
|
|
|
+ expect(streamProviderMock.processURL("testurl", "POST", "testbody", headerParamsToForward)).andReturn(urlConnectionMock);
|
|
|
expect(urlConnectionMock.getResponseCode()).andReturn(200);
|
|
|
expect(urlConnectionMock.getContentType()).andReturn("text/plain");
|
|
|
expect(urlConnectionMock.getInputStream()).andReturn(is);
|
|
@@ -115,14 +135,23 @@ class ProxyServiceTest extends BaseServiceTest {
|
|
|
URLStreamProvider streamProviderMock = PowerMock.createNiceMock(URLStreamProvider.class);
|
|
|
HttpURLConnection urlConnectionMock = createMock(HttpURLConnection.class);
|
|
|
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
|
|
|
+ MultivaluedMap<String, String> headerParams = new MultivaluedMapImpl();
|
|
|
+ Map<String, List<String>> headerParamsToForward = new HashMap<String, List<String>>();
|
|
|
Response.ResponseBuilder responseBuilderMock = PowerMock.createMock(ResponseBuilderImpl.class);
|
|
|
Response responseMock = createMock(ResponseImpl.class);
|
|
|
queryParams.add("url","testurl");
|
|
|
+ headerParams.add("AmbariProxy-User-Remote","testuser");
|
|
|
+ headerParams.add("Content-Type","testtype");
|
|
|
+ List<String> userRemoteParams = new LinkedList<String>();
|
|
|
+ userRemoteParams.add("testuser");
|
|
|
+ headerParamsToForward.put("User-Remote", userRemoteParams);
|
|
|
InputStream is = new ByteArrayInputStream("test".getBytes());
|
|
|
PowerMock.mockStatic(Response.class);
|
|
|
+ expect(getHttpHeaders().getRequestHeaders()).andReturn(headerParams);
|
|
|
+ expect(getHttpHeaders().getRequestHeader("AmbariProxy-User-Remote")).andReturn(userRemoteParams);
|
|
|
expect(getUriInfo().getQueryParameters()).andReturn(queryParams);
|
|
|
expect(getHttpHeaders().getMediaType()).andReturn(APPLICATION_FORM_URLENCODED_TYPE);
|
|
|
- expect(streamProviderMock.processURL("testurl", "PUT", "testbody", APPLICATION_FORM_URLENCODED)).andReturn(urlConnectionMock);
|
|
|
+ expect(streamProviderMock.processURL("testurl", "PUT", "testbody", headerParamsToForward)).andReturn(urlConnectionMock);
|
|
|
expect(urlConnectionMock.getResponseCode()).andReturn(200);
|
|
|
expect(urlConnectionMock.getContentType()).andReturn("text/plain");
|
|
|
expect(urlConnectionMock.getInputStream()).andReturn(is);
|
|
@@ -143,13 +172,22 @@ class ProxyServiceTest extends BaseServiceTest {
|
|
|
URLStreamProvider streamProviderMock = PowerMock.createNiceMock(URLStreamProvider.class);
|
|
|
HttpURLConnection urlConnectionMock = createMock(HttpURLConnection.class);
|
|
|
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
|
|
|
+ MultivaluedMap<String, String> headerParams = new MultivaluedMapImpl();
|
|
|
+ Map<String, List<String>> headerParamsToForward = new HashMap<String, List<String>>();
|
|
|
Response.ResponseBuilder responseBuilderMock = PowerMock.createMock(ResponseBuilderImpl.class);
|
|
|
Response responseMock = createMock(ResponseImpl.class);
|
|
|
queryParams.add("url","testurl");
|
|
|
+ headerParams.add("AmbariProxy-User-Remote","testuser");
|
|
|
+ headerParams.add("Content-Type","testtype");
|
|
|
+ List<String> userRemoteParams = new LinkedList<String>();
|
|
|
+ userRemoteParams.add("testuser");
|
|
|
+ headerParamsToForward.put("User-Remote", userRemoteParams);
|
|
|
InputStream is = new ByteArrayInputStream("test".getBytes());
|
|
|
PowerMock.mockStatic(Response.class);
|
|
|
+ expect(getHttpHeaders().getRequestHeaders()).andReturn(headerParams);
|
|
|
+ expect(getHttpHeaders().getRequestHeader("AmbariProxy-User-Remote")).andReturn(userRemoteParams);
|
|
|
expect(getUriInfo().getQueryParameters()).andReturn(queryParams);
|
|
|
- expect(streamProviderMock.processURL("testurl", "DELETE", null, APPLICATION_FORM_URLENCODED)).andReturn(urlConnectionMock);
|
|
|
+ expect(streamProviderMock.processURL("testurl", "DELETE", null, headerParamsToForward)).andReturn(urlConnectionMock);
|
|
|
expect(urlConnectionMock.getResponseCode()).andReturn(200);
|
|
|
expect(urlConnectionMock.getContentType()).andReturn("text/plain");
|
|
|
expect(urlConnectionMock.getInputStream()).andReturn(is);
|
|
@@ -159,7 +197,7 @@ class ProxyServiceTest extends BaseServiceTest {
|
|
|
expect(responseBuilderMock.type("text/plain")).andReturn(responseBuilderMock);
|
|
|
expect(responseBuilderMock.build()).andReturn(responseMock);
|
|
|
PowerMock.replay(streamProviderMock, URLStreamProvider.class, Response.class, responseBuilderMock);
|
|
|
- replay(getUriInfo(), urlConnectionMock);
|
|
|
+ replay(getUriInfo(), urlConnectionMock, getHttpHeaders());
|
|
|
Response resultForDeleteRequest = ps.processDeleteRequestForwarding(getHttpHeaders(), getUriInfo());
|
|
|
assertSame(resultForDeleteRequest, responseMock);
|
|
|
}
|
|
@@ -170,13 +208,22 @@ class ProxyServiceTest extends BaseServiceTest {
|
|
|
URLStreamProvider streamProviderMock = PowerMock.createNiceMock(URLStreamProvider.class);
|
|
|
HttpURLConnection urlConnectionMock = createMock(HttpURLConnection.class);
|
|
|
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
|
|
|
+ MultivaluedMap<String, String> headerParams = new MultivaluedMapImpl();
|
|
|
+ Map<String, List<String>> headerParamsToForward = new HashMap<String, List<String>>();
|
|
|
queryParams.add("url","testurl");
|
|
|
+ headerParams.add("AmbariProxy-User-Remote","testuser");
|
|
|
+ headerParams.add("Content-Type","testtype");
|
|
|
+ List<String> userRemoteParams = new LinkedList<String>();
|
|
|
+ userRemoteParams.add("testuser");
|
|
|
+ headerParamsToForward.put("User-Remote", userRemoteParams);
|
|
|
+ expect(getHttpHeaders().getRequestHeaders()).andReturn(headerParams);
|
|
|
+ expect(getHttpHeaders().getRequestHeader("AmbariProxy-User-Remote")).andReturn(userRemoteParams);
|
|
|
expect(getUriInfo().getQueryParameters()).andReturn(queryParams);
|
|
|
- expect(streamProviderMock.processURL("testurl", "GET", null, APPLICATION_FORM_URLENCODED)).andReturn(urlConnectionMock);
|
|
|
+ expect(streamProviderMock.processURL("testurl", "GET", null, headerParamsToForward)).andReturn(urlConnectionMock);
|
|
|
expect(urlConnectionMock.getResponseCode()).andReturn(405).times(2);
|
|
|
PowerMock.expectNew(URLStreamProvider.class, 3000, 1000, null, null, null).andReturn(streamProviderMock);
|
|
|
PowerMock.replay(streamProviderMock, URLStreamProvider.class);
|
|
|
- replay(getUriInfo(), urlConnectionMock);
|
|
|
+ replay(getUriInfo(), urlConnectionMock, getHttpHeaders());
|
|
|
ps.processGetRequestForwarding(getHttpHeaders(),getUriInfo());
|
|
|
}
|
|
|
|
|
@@ -186,13 +233,22 @@ class ProxyServiceTest extends BaseServiceTest {
|
|
|
URLStreamProvider streamProviderMock = PowerMock.createNiceMock(URLStreamProvider.class);
|
|
|
HttpURLConnection urlConnectionMock = createMock(HttpURLConnection.class);
|
|
|
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
|
|
|
+ MultivaluedMap<String, String> headerParams = new MultivaluedMapImpl();
|
|
|
+ Map<String, List<String>> headerParamsToForward = new HashMap<String, List<String>>();
|
|
|
Response.ResponseBuilder responseBuilderMock = PowerMock.createMock(ResponseBuilderImpl.class);
|
|
|
Response responseMock = createMock(ResponseImpl.class);
|
|
|
queryParams.add("url","testurl");
|
|
|
+ headerParams.add("AmbariProxy-User-Remote","testuser");
|
|
|
+ headerParams.add("Content-Type","testtype");
|
|
|
+ List<String> userRemoteParams = new LinkedList<String>();
|
|
|
+ userRemoteParams.add("testuser");
|
|
|
+ headerParamsToForward.put("User-Remote", userRemoteParams);
|
|
|
Map map = new Gson().fromJson(new InputStreamReader(new ByteArrayInputStream("{ \"test\":\"test\" }".getBytes())), Map.class);
|
|
|
PowerMock.mockStatic(Response.class);
|
|
|
+ expect(getHttpHeaders().getRequestHeaders()).andReturn(headerParams);
|
|
|
+ expect(getHttpHeaders().getRequestHeader("AmbariProxy-User-Remote")).andReturn(userRemoteParams);
|
|
|
expect(getUriInfo().getQueryParameters()).andReturn(queryParams);
|
|
|
- expect(streamProviderMock.processURL("testurl", "GET", null, APPLICATION_FORM_URLENCODED)).andReturn(urlConnectionMock);
|
|
|
+ expect(streamProviderMock.processURL("testurl", "GET", null, headerParamsToForward)).andReturn(urlConnectionMock);
|
|
|
expect(urlConnectionMock.getResponseCode()).andReturn(200);
|
|
|
expect(urlConnectionMock.getContentType()).andReturn("application/json");
|
|
|
expect(urlConnectionMock.getInputStream()).andReturn(new ByteArrayInputStream("{ \"test\":\"test\" }".getBytes()));
|
|
@@ -202,7 +258,7 @@ class ProxyServiceTest extends BaseServiceTest {
|
|
|
expect(responseBuilderMock.type("application/json")).andReturn(responseBuilderMock);
|
|
|
expect(responseBuilderMock.build()).andReturn(responseMock);
|
|
|
PowerMock.replay(streamProviderMock, URLStreamProvider.class, Response.class, responseBuilderMock);
|
|
|
- replay(getUriInfo(), urlConnectionMock);
|
|
|
+ replay(getUriInfo(), urlConnectionMock, getHttpHeaders());
|
|
|
Response resultForGetRequest = ps.processGetRequestForwarding(getHttpHeaders(),getUriInfo());
|
|
|
assertSame(resultForGetRequest, responseMock);
|
|
|
}
|