X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=holmes-actions%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fholmes%2Fcommon%2Futils%2FJerseyClientTest.java;h=01837401e490512a4ce95a2e4e664f06ba6604b7;hb=6af8af01fb0cdceb384cf47cf241736620510465;hp=6c95ccb2f5c193c13b690ef42d8c631e22285085;hpb=459e4faa15c47f39c7400000cb15ca2d2123e70f;p=holmes%2Fcommon.git diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/utils/JerseyClientTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/utils/JerseyClientTest.java index 6c95ccb..0183740 100644 --- a/holmes-actions/src/test/java/org/onap/holmes/common/utils/JerseyClientTest.java +++ b/holmes-actions/src/test/java/org/onap/holmes/common/utils/JerseyClientTest.java @@ -1,5 +1,5 @@ /** - * Copyright 2020 ZTE Corporation. + * Copyright 2020 - 2021 ZTE Corporation. *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,32 +16,446 @@
package org.onap.holmes.common.utils;
+import org.easymock.EasyMock;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.onap.holmes.common.exception.HttpException;
+import org.powermock.api.easymock.PowerMock;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
+import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.internal.WhiteboxImpl;
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.Invocation;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.junit.Assert.assertThat;
+
+@RunWith(PowerMockRunner.class)
+@PowerMockIgnore({"javax.net.ssl.*", "javax.security.*"})
public class JerseyClientTest {
+ private final String ERROR_MSG = "Status code: <404>. Message: Failed to get response from the server. Info: Error";
private JerseyClient jerseyClient = new JerseyClient();
+ private String url = "http://www.onap.org/holmes/test";
+ @Rule
+ private ExpectedException exception = ExpectedException.none();
+
+ @Test
+ public void get_normal() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createMock(WebTarget.class);
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "get");
+ Response mockedResponse = PowerMock.createMock(Response.class);
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.path("test")).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.queryParam("ut", true)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.header("Accept", MediaType.APPLICATION_JSON)).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.get()).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(200);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn("Normal");
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ PowerMock.replayAll();
+
+ assertThat(jerseyClient.path("test")
+ .header("Accept", MediaType.APPLICATION_JSON)
+ .queryParam("ut", true)
+ .get(url), equalTo("Normal"));
+
+ PowerMock.verifyAll();
+ }
+
+ @Test
+ public void get_normal_with_class() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "get");
+ Response mockedResponse = PowerMock.createMock(Response.class);
+ Bean bean = new Bean("name", "holmes");
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.get()).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(200);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn(GsonUtil.beanToJson(bean));
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ PowerMock.replayAll();
+
+ assertThat(jerseyClient.get(url, Bean.class), equalTo(bean));
+
+ PowerMock.verifyAll();
+ }
+
+ @Test
+ public void get_normal_with_null_class_info() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "get");
+ Response mockedResponse = PowerMock.createMock(Response.class);
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.get()).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(200);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn("Normal");
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ PowerMock.replayAll();
+
+ assertThat(jerseyClient.get(url, null), equalTo("Normal"));
+
+ PowerMock.verifyAll();
+ }
+
+ @Test
+ public void get_fail() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "get");
+ Response mockedResponse = PowerMock.createMock(Response.class);
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.get()).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(404);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn("Error");
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ exception.expect(HttpException.class);
+ exception.expectMessage(ERROR_MSG);
+
+ PowerMock.replayAll();
+
+ jerseyClient.get(url);
+
+ PowerMock.verifyAll();
+ }
+
+ @Test
+ public void post_normal_no_body() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "post", Entity.class);
+ Response mockedResponse = PowerMock.createMock(Response.class);
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.post(null)).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(200);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn("Normal");
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ PowerMock.replayAll();
+
+ assertThat(jerseyClient.post(url), equalTo("Normal"));
+
+ PowerMock.verifyAll();
+ }
+
+ @Test
+ public void post_nobody_fail() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "post", Entity.class);
+ Response mockedResponse = PowerMock.createMock(Response.class);
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.post(null)).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(404);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn("Error");
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ exception.expect(HttpException.class);
+ exception.expectMessage(ERROR_MSG);
+
+ PowerMock.replayAll();
+
+ jerseyClient.post(url);
+
+ PowerMock.verifyAll();
+ }
+
+ @Test
+ public void post_normal_no_body_with_class() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "post", Entity.class);
+ Response mockedResponse = PowerMock.createMock(Response.class);
+ Bean bean = new Bean("name", "holmes");
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.post(null)).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(200);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn(GsonUtil.beanToJson(bean));
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ PowerMock.replayAll();
+
+ assertThat(jerseyClient.post(url, null, Bean.class), equalTo(bean));
+
+ PowerMock.verifyAll();
+ }
+
+
+ @Test
+ public void put_normal() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "put", Entity.class);
+ Response mockedResponse = PowerMock.createMock(Response.class);
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.put(null)).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(200);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn("Normal");
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ PowerMock.replayAll();
+
+ assertThat(jerseyClient.put(url, null), equalTo("Normal"));
+
+ PowerMock.verifyAll();
+ }
@Test
- public void http() {
- jerseyClient.httpClient();
+ public void put_normal_with_class_info() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "put", Entity.class);
+ Response mockedResponse = PowerMock.createMock(Response.class);
+ Bean bean = new Bean("name", "holmes");
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.put(null)).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(200);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn(GsonUtil.beanToJson(bean));
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ PowerMock.replayAll();
+
+ assertThat(jerseyClient.put(url, null, Bean.class), equalTo(bean));
+
+ PowerMock.verifyAll();
}
@Test
- public void https() throws Exception {
- WhiteboxImpl.invokeMethod(jerseyClient, "init");
- jerseyClient.httpsClient();
+ public void put_normal_with_null_class_info() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "put", Entity.class);
+ Response mockedResponse = PowerMock.createMock(Response.class);
+ Bean bean = new Bean("name", "holmes");
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.put(null)).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(200);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn(GsonUtil.beanToJson(bean));
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ PowerMock.replayAll();
+
+ assertThat(jerseyClient.put(url, null, null), equalTo(GsonUtil.beanToJson(bean)));
+
+ PowerMock.verifyAll();
}
@Test
- public void clientHttp() {
- jerseyClient.client(false);
+ public void put_fail() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "put", Entity.class);
+ Response mockedResponse = PowerMock.createMock(Response.class);
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.put(null)).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(404);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn("Error");
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ exception.expect(HttpException.class);
+ exception.expectMessage(ERROR_MSG);
+
+ PowerMock.replayAll();
+
+ jerseyClient.put(url, null, null);
+
+ PowerMock.verifyAll();
}
+
@Test
- public void clientHttps() throws Exception {
- WhiteboxImpl.invokeMethod(jerseyClient, "init");
- jerseyClient.client(true);
+ public void delete_normal() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "delete");
+ Response mockedResponse = PowerMock.createMock(Response.class);
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.delete()).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(200);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn("Normal");
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ PowerMock.replayAll();
+
+ assertThat(jerseyClient.delete(url), equalTo("Normal"));
+
+ PowerMock.verifyAll();
+ }
+
+ @Test
+ public void delete_normal_with_class_info() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "get");
+ Response mockedResponse = PowerMock.createMock(Response.class);
+ Bean bean = new Bean("name", "holmes");
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.delete()).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(200);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn(GsonUtil.beanToJson(bean));
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ PowerMock.replayAll();
+
+ assertThat(jerseyClient.delete(url, Bean.class), equalTo(bean));
+
+ PowerMock.verifyAll();
+ }
+
+ @Test
+ public void delete_with_null_class_info() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "delete");
+ Response mockedResponse = PowerMock.createMock(Response.class);
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.delete()).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(200);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn("Normal");
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ PowerMock.replayAll();
+
+ assertThat(jerseyClient.delete(url, null), equalTo("Normal"));
+
+ PowerMock.verifyAll();
+ }
+
+ @Test
+ public void delete_fail() {
+ Client mockedClient = PowerMock.createMock(Client.class);
+ WebTarget mockedTarget = PowerMock.createPartialMock(WebTarget.class, "request");
+ Invocation.Builder mockedBuilder = PowerMock.createPartialMock(Invocation.Builder.class, "delete");
+ Response mockedResponse = PowerMock.createMock(Response.class);
+
+ EasyMock.expect(mockedClient.target(url)).andReturn(mockedTarget);
+ EasyMock.expect(mockedTarget.request()).andReturn(mockedBuilder);
+ EasyMock.expect(mockedBuilder.delete()).andReturn(mockedResponse);
+ EasyMock.expect(mockedResponse.getStatus()).andReturn(404);
+ EasyMock.expect(mockedResponse.readEntity(String.class)).andReturn("Error");
+
+ WhiteboxImpl.setInternalState(jerseyClient, "client", mockedClient);
+
+ exception.expect(HttpException.class);
+ exception.expectMessage(ERROR_MSG);
+
+ PowerMock.replayAll();
+
+ jerseyClient.delete(url);
+
+ PowerMock.verifyAll();
+ }
+
+ @Test
+ public void headers() {
+ Map