X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=holmes-actions%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fholmes%2Fcommon%2Futils%2FMsbRegisterTest.java;h=1a12f85f542b11fbf4e7bbdac51cd92f1bc97dda;hb=6af8af01fb0cdceb384cf47cf241736620510465;hp=06375865b212c4e64497f819754e340d732f3aff;hpb=459e4faa15c47f39c7400000cb15ca2d2123e70f;p=holmes%2Fcommon.git diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/utils/MsbRegisterTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/utils/MsbRegisterTest.java index 0637586..1a12f85 100644 --- a/holmes-actions/src/test/java/org/onap/holmes/common/utils/MsbRegisterTest.java +++ b/holmes-actions/src/test/java/org/onap/holmes/common/utils/MsbRegisterTest.java @@ -16,69 +16,92 @@ package org.onap.holmes.common.utils; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.onap.holmes.common.config.MicroServiceConfig; import org.onap.holmes.common.exception.CorrelationException; +import org.onap.msb.sdk.discovery.entity.MicroServiceFullInfo; import org.onap.msb.sdk.discovery.entity.MicroServiceInfo; import org.powermock.api.easymock.PowerMock; +import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; 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 static org.easymock.EasyMock.anyObject; import static org.easymock.EasyMock.expect; -import static org.powermock.api.easymock.PowerMock.createMock; +import static org.powermock.api.easymock.PowerMock.createPartialMock; @PrepareForTest({MicroServiceConfig.class}) @RunWith(PowerMockRunner.class) +@PowerMockIgnore({"javax.net.ssl.*", "javax.security.*"}) public class MsbRegisterTest { - @Test - public void test_register2Msb_normal() { - MicroServiceInfo msi = new MicroServiceInfo(); + + private MsbRegister msbRegister; + private JerseyClient mockedJerseyClient; + private MicroServiceInfo msi; + + @Before + public void before() { + msi = new MicroServiceInfo(); String[] msbAddrInfo = {"127.0.0.1", "80"}; PowerMock.mockStatic(MicroServiceConfig.class); expect(MicroServiceConfig.getMsbIpAndPort()).andReturn(msbAddrInfo); - JerseyClient mockedJerseyClient = createMock(JerseyClient.class); - - Client mockedClient = createMock(Client.class); - expect(mockedJerseyClient.client(false)).andReturn(mockedClient); + mockedJerseyClient = createPartialMock(JerseyClient.class, + "post", new Class[]{String.class, Entity.class, Class.class}); - WebTarget mockedWebTarget = createMock(WebTarget.class); - expect(mockedClient.target("http://127.0.0.1:80/api/microservices/v1/services")).andReturn(mockedWebTarget); - - - expect(mockedWebTarget.queryParam("createOrUpdate", true)).andReturn(mockedWebTarget).times(2); + msbRegister = new MsbRegister(); + WhiteboxImpl.setInternalState(msbRegister, "client", mockedJerseyClient); + } - Invocation.Builder mockedBuilder = createMock(Invocation.Builder.class); - expect(mockedWebTarget.request(MediaType.APPLICATION_JSON)).andReturn(mockedBuilder).times(2); + @Test + public void test_register2Msb_normal() { + expect(mockedJerseyClient.post(anyObject(String.class), + anyObject(Entity.class), + anyObject(Class.class))) + .andReturn(GsonUtil.jsonToBean("{\"serviceName\":\"holmes-engine-mgmt\"," + + "\"version\":\"v1\",\"url\":\"/api/holmes-engine-mgmt/v1\",\"protocol\":\"REST\"," + + "\"visualRange\":\"0|1\",\"lb_policy\":\"\",\"publish_port\":\"\",\"namespace\":\"\"," + + "\"network_plane_type\":\"\",\"host\":\"\",\"path\":\"/api/holmes-engine-mgmt/v1\"," + + "\"enable_ssl\":true,\"nodes\":[{\"ip\":\"127.0.0.1\",\"port\":\"9102\",\"checkType\":\"\"," + + "\"checkUrl\":\"\",\"tls_skip_verify\":true,\"ha_role\":\"\",\"nodeId\":\"_v1_holmes-engine-mgmt_127.0.0.1_9102\"," + + "\"status\":\"passing\"}],\"metadata\":[],\"labels\":[],\"status\":\"1\",\"is_manual\":false}", + MicroServiceFullInfo.class)); - Response mockedResponse = createMock(Response.class); - expect(mockedBuilder.post(Entity.entity(msi, MediaType.APPLICATION_JSON))) - .andReturn(mockedResponse); - expect(mockedResponse.getStatus()).andReturn(300); + PowerMock.replayAll(); - expect(mockedBuilder.post(Entity.entity(msi, MediaType.APPLICATION_JSON))) - .andReturn(mockedResponse); - expect(mockedResponse.getStatus()).andReturn(201); - expect(mockedResponse.readEntity(String.class)).andReturn("Error"); - expect(mockedResponse.readEntity(String.class)).andReturn("{\"serviceName\":\"holmes-engine-mgmt\"," + - "\"version\":\"v1\",\"url\":\"/api/holmes-engine-mgmt/v1\",\"protocol\":\"REST\"," + - "\"visualRange\":\"0|1\",\"lb_policy\":\"\",\"publish_port\":\"\",\"namespace\":\"\"," + - "\"network_plane_type\":\"\",\"host\":\"\",\"path\":\"/api/holmes-engine-mgmt/v1\"," + - "\"enable_ssl\":true,\"nodes\":[{\"ip\":\"127.0.0.1\",\"port\":\"9102\",\"checkType\":\"\"," + - "\"checkUrl\":\"\",\"tls_skip_verify\":true,\"ha_role\":\"\",\"nodeId\":\"_v1_holmes-engine-mgmt_127.0.0.1_9102\"," + - "\"status\":\"passing\"}],\"metadata\":[],\"labels\":[],\"status\":\"1\",\"is_manual\":false}"); + try { + msbRegister.register2Msb(msi); + } catch (CorrelationException e) { + // Do nothing + } + PowerMock.verifyAll(); + } - MsbRegister msbRegister = new MsbRegister(mockedJerseyClient); + @Test + public void test_register2Msb_fail_once() { + expect(mockedJerseyClient.post(anyObject(String.class), + anyObject(Entity.class), + anyObject(Class.class))) + .andReturn(null); + + expect(mockedJerseyClient.post(anyObject(String.class), + anyObject(Entity.class), + anyObject(Class.class))) + .andReturn(GsonUtil.jsonToBean("{\"serviceName\":\"holmes-engine-mgmt\"," + + "\"version\":\"v1\",\"url\":\"/api/holmes-engine-mgmt/v1\",\"protocol\":\"REST\"," + + "\"visualRange\":\"0|1\",\"lb_policy\":\"\",\"publish_port\":\"\",\"namespace\":\"\"," + + "\"network_plane_type\":\"\",\"host\":\"\",\"path\":\"/api/holmes-engine-mgmt/v1\"," + + "\"enable_ssl\":true,\"nodes\":[{\"ip\":\"127.0.0.1\",\"port\":\"9102\",\"checkType\":\"\"," + + "\"checkUrl\":\"\",\"tls_skip_verify\":true,\"ha_role\":\"\",\"nodeId\":\"_v1_holmes-engine-mgmt_127.0.0.1_9102\"," + + "\"status\":\"passing\"}],\"metadata\":[],\"labels\":[],\"status\":\"1\",\"is_manual\":false}", + MicroServiceFullInfo.class)); PowerMock.replayAll();