import java.util.Collection;
 import java.util.HashSet;
 
+import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.ResponseBuilder;
 
 import org.apache.http.HttpException;
 import org.glassfish.jersey.internal.util.Base64;
+import org.glassfish.jersey.internal.util.collection.StringKeyIgnoreCaseMultivaluedMap;
 import org.json.JSONException;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
+import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.PowerMockIgnore;
 @PrepareForTest({ DmaapClientUtil.class })
 public class MRBaseClientTest {
 
-       //@InjectMocks
+       // @InjectMocks
        private MRBaseClient mrBaseClient;
        private Collection<String> hosts = new HashSet<>(Arrays.asList("localhost:8080"));
        private String clientSignature = "topic" + "::" + "cg" + "::" + "cid";
 
        @Before
        public void setup() throws MalformedURLException {
-               mrBaseClient=new MRBaseClient(hosts, clientSignature);
+               mrBaseClient = new MRBaseClient(hosts, clientSignature);
                PowerMockito.mockStatic(DmaapClientUtil.class);
        }
 
        @Test
        public void testGet() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
-               PowerMockito
-                               .when(DmaapClientUtil.getResponsewtCambriaAuth(DmaapClientUtil.getTarget("/path"), "username",
-                                               "password"))
-                               .thenReturn(
-                                               responseBuilder.header("transactionid", "transactionid").entity("{\"test\":\"test\"}").build());
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("{\"test\":\"test\"}");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
+               PowerMockito.when(
+                               DmaapClientUtil.getResponsewtCambriaAuth(DmaapClientUtil.getTarget("/path"), "username", "password"))
+                               .thenReturn(response);
 
                mrBaseClient.get("/path", "username", "password", "HTTPAUTH");
                assertTrue(true);
        @Test
        public void testGet_basicauth() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
-               PowerMockito
-                               .when(DmaapClientUtil.getResponsewtBasicAuth(DmaapClientUtil.getTarget("/path"),
-                                               Base64.encodeAsString("username:password")))
-                               .thenReturn(
-                                               responseBuilder.header("transactionid", "transactionid").entity("{\"test\":\"test\"}").build());
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("{\"test\":\"test\"}");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
+               PowerMockito.when(DmaapClientUtil.getResponsewtBasicAuth(DmaapClientUtil.getTarget("/path"),
+                               Base64.encodeAsString("username:password"))).thenReturn(response);
 
                mrBaseClient.get("/path", "username", "password", "HTTPAAF");
                assertTrue(true);
        @Test
        public void testGet_wrongjson() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
-               PowerMockito
-                               .when(DmaapClientUtil.getResponsewtCambriaAuth(DmaapClientUtil.getTarget("/path"), "username",
-                                               "password"))
-                               .thenReturn(responseBuilder.header("transactionid", "transactionid").entity("[[").build());
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("[[");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
+               PowerMockito.when(
+                               DmaapClientUtil.getResponsewtCambriaAuth(DmaapClientUtil.getTarget("/path"), "username", "password"))
+                               .thenReturn(response);
 
                mrBaseClient.get("/path", "username", "password", "HTTPAUTH");
                assertTrue(true);
        @Test
        public void testGetResponse() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
-               PowerMockito
-                               .when(DmaapClientUtil.getResponsewtCambriaAuth(DmaapClientUtil.getTarget("/path"), "username",
-                                               "password"))
-                               .thenReturn(
-                                               responseBuilder.header("transactionid", "transactionid").entity("{\"test\":\"test\"}").build());
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("{\"test\":\"test\"}");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
+               PowerMockito.when(
+                               DmaapClientUtil.getResponsewtCambriaAuth(DmaapClientUtil.getTarget("/path"), "username", "password"))
+                               .thenReturn(response);
 
                mrBaseClient.getResponse("/path", "username", "password", "HTTPAUTH");
                assertTrue(true);
        @Test
        public void testGetResponse_aaf() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
-               PowerMockito
-                               .when(DmaapClientUtil.getResponsewtBasicAuth(DmaapClientUtil.getTarget("/path"),
-                                               Base64.encodeAsString("username:password")))
-                               .thenReturn(
-                                               responseBuilder.header("transactionid", "transactionid").entity("{\"test\":\"test\"}").build());
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("{\"test\":\"test\"}");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
+               PowerMockito.when(DmaapClientUtil.getResponsewtBasicAuth(DmaapClientUtil.getTarget("/path"),
+                               Base64.encodeAsString("username:password"))).thenReturn(response);
 
                mrBaseClient.getResponse("/path", "username", "password", "HTTPAAF");
                assertTrue(true);
        @Test
        public void testAuthResponse() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
-               PowerMockito
-                               .when(DmaapClientUtil.getResponsewtCambriaAuth(DmaapClientUtil.getTarget("/path"), "username",
-                                               "password"))
-                               .thenReturn(
-                                               responseBuilder.header("transactionid", "transactionid").entity("{\"test\":\"test\"}").build());
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("{\"test\":\"test\"}");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
+               PowerMockito.when(
+                               DmaapClientUtil.getResponsewtCambriaAuth(DmaapClientUtil.getTarget("/path"), "username", "password"))
+                               .thenReturn(response);
 
                mrBaseClient.getAuthResponse("/path", "username", "password", "username", "password", "HTTPAUTH");
                assertTrue(true);
        @Test
        public void testPostAuth() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("{\"test\":\"test\"}");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
                PowerMockito
                                .when(DmaapClientUtil.postResponsewtCambriaAuth(DmaapClientUtil.getTarget("/path"), "username",
                                                "password", new String("{\"test\":\"test\"}").getBytes(), "application/json"))
-                               .thenReturn(
-                                               responseBuilder.header("transactionid", "transactionid").entity("{\"test\":\"test\"}").build());
+                               .thenReturn(response);
 
                mrBaseClient.postAuth("/path", new String("{\"test\":\"test\"}").getBytes(), "application/json", "username",
                                "password", "username", "password", "HTTPAUTH");
        @Test
        public void testGetNoAuthResponse() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
-               PowerMockito.when(DmaapClientUtil.getResponsewtNoAuth(DmaapClientUtil.getTarget("/path"))).thenReturn(
-                               responseBuilder.header("transactionid", "transactionid").entity("{\"test\":\"test\"}").build());
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("{\"test\":\"test\"}");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
+               PowerMockito.when(DmaapClientUtil.getResponsewtNoAuth(DmaapClientUtil.getTarget("/path"))).thenReturn(response);
 
                mrBaseClient.getNoAuthResponse("/path", "username", "password", "HTTPAUTH");
                assertTrue(true);
        @Test
        public void testPost() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
-               PowerMockito
-                               .when(DmaapClientUtil.getResponsewtBasicAuth(DmaapClientUtil.getTarget("/path"),
-                                               Base64.encodeAsString("username:password")))
-                               .thenReturn(
-                                               responseBuilder.header("transactionid", "transactionid").entity("{\"test\":\"test\"}").build());
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("{\"test\":\"test\"}");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
+               PowerMockito.when(DmaapClientUtil.getResponsewtBasicAuth(DmaapClientUtil.getTarget("/path"),
+                               Base64.encodeAsString("username:password"))).thenReturn(response);
 
                mrBaseClient.post("/path", new String("{\"test\":\"test\"}").getBytes(), "application/json", "username",
                                "password", "HTTPAUTH");
        @Test
        public void testPostAuthwithResponse() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("{\"test\":\"test\"}");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
                PowerMockito
                                .when(DmaapClientUtil.postResponsewtCambriaAuth(DmaapClientUtil.getTarget("/path"), "username",
                                                "password", new String("{\"test\":\"test\"}").getBytes(), "application/json"))
-                               .thenReturn(
-                                               responseBuilder.header("transactionid", "transactionid").entity("{\"test\":\"test\"}").build());
+                               .thenReturn(response);
 
                mrBaseClient.postAuthwithResponse("/path", new String("{\"test\":\"test\"}").getBytes(), "application/json",
                                "username", "password", "username", "password", "HTTPAUTH");
        @Test
        public void testPostWithResponse() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
-               PowerMockito
-                               .when(DmaapClientUtil.getResponsewtBasicAuth(DmaapClientUtil.getTarget("/path"),
-                                               Base64.encodeAsString("username:password")))
-                               .thenReturn(
-                                               responseBuilder.header("transactionid", "transactionid").entity("{\"test\":\"test\"}").build());
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("{\"test\":\"test\"}");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
+               PowerMockito.when(DmaapClientUtil.getResponsewtBasicAuth(DmaapClientUtil.getTarget("/path"),
+                               Base64.encodeAsString("username:password"))).thenReturn(response);
 
                mrBaseClient.postWithResponse("/path", new String("{\"test\":\"test\"}").getBytes(), "application/json",
                                "username", "password", "HTTPAUTH");
        @Test
        public void testGetAuth() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
-               PowerMockito
-                               .when(DmaapClientUtil.getResponsewtCambriaAuth(DmaapClientUtil.getTarget("/path"), "username",
-                                               "password"))
-                               .thenReturn(
-                                               responseBuilder.header("transactionid", "transactionid").entity("{\"test\":\"test\"}").build());
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("{\"test\":\"test\"}");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
+               PowerMockito.when(
+                               DmaapClientUtil.getResponsewtCambriaAuth(DmaapClientUtil.getTarget("/path"), "username", "password"))
+                               .thenReturn(response);
                mrBaseClient.getAuth("/path", "username", "password", "username", "password", "HTTPAUTH");
                assertTrue(true);
 
        @Test
        public void testGetNoAuth() throws JSONException, HttpException {
 
-               ResponseBuilder responseBuilder = Response.ok();
-               PowerMockito.when(DmaapClientUtil.getResponsewtNoAuth(DmaapClientUtil.getTarget("/path"))).thenReturn(
-                               responseBuilder.header("transactionid", "transactionid").entity("{\"test\":\"test\"}").build());
+               Response response = Mockito.mock(Response.class);
+               MultivaluedMap<String, Object> map = new StringKeyIgnoreCaseMultivaluedMap<>();
+               map.add("transactionid", "transactionid");
+
+               PowerMockito.when(response.getStatus()).thenReturn(200);
+               PowerMockito.when(response.readEntity(String.class)).thenReturn("{\"test\":\"test\"}");
+               PowerMockito.when(response.getHeaders()).thenReturn(map);
+
+               PowerMockito.when(DmaapClientUtil.getResponsewtNoAuth(DmaapClientUtil.getTarget("/path"))).thenReturn(response);
                mrBaseClient.getNoAuth("/path", "username", "password", "HTTPAUTH");
                assertTrue(true);