Improved the UT coverage
[holmes/common.git] / holmes-actions / src / test / java / org / onap / holmes / common / utils / MSBRegisterUtilTest.java
index a38c26e..ab75e06 100644 (file)
 \r
 package org.onap.holmes.common.utils;\r
 \r
-import com.eclipsesource.jaxrs.consumer.ConsumerFactory;\r
-import javax.ws.rs.QueryParam;\r
 import org.easymock.EasyMock;\r
 import org.junit.Rule;\r
 import org.junit.Test;\r
-import org.onap.holmes.common.msb.MicroserviceBusRest;\r
-import org.onap.holmes.common.api.entity.ServiceRegisterEntity;\r
 import org.onap.holmes.common.config.MicroServiceConfig;\r
+import org.onap.holmes.common.exception.CorrelationException;\r
+import org.onap.msb.sdk.discovery.entity.MicroServiceFullInfo;\r
+import org.onap.msb.sdk.discovery.entity.MicroServiceInfo;\r
+import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;\r
 import org.powermock.api.easymock.PowerMock;\r
+import org.powermock.core.classloader.annotations.PowerMockIgnore;\r
 import org.powermock.core.classloader.annotations.PrepareForTest;\r
 import org.powermock.modules.junit4.rule.PowerMockRule;\r
 \r
-@PrepareForTest(ConsumerFactory.class)\r
+@PrepareForTest({MicroServiceConfig.class, MSBServiceClient.class, MSBRegisterUtil.class})\r
+@PowerMockIgnore({"javax.ws.*"})\r
 public class MSBRegisterUtilTest {\r
 \r
     @Rule\r
     public PowerMockRule powerMockRule = new PowerMockRule();\r
+\r
     private MSBRegisterUtil msbRegisterUtil = new MSBRegisterUtil();\r
-    private MicroserviceBusRest microserviceBusRest = new MicroserviceBusRestProxy();\r
 \r
     @Test\r
-    public void registerTest() throws Exception {\r
-        ServiceRegisterEntity entity = initServiceEntity();\r
-        PowerMock.mockStatic(ConsumerFactory.class);\r
-        EasyMock.expect(ConsumerFactory\r
-                .createConsumer(EasyMock.anyObject(String.class), EasyMock.anyObject(Class.class)))\r
-                .andReturn(microserviceBusRest);\r
-        PowerMock.replayAll();\r
+    public void test_register2Msb_normal() throws Exception {\r
+        MicroServiceInfo msi = new MicroServiceInfo();\r
+        String[] msbAddrInfo = {"127.0.0.1", "80"};\r
 \r
-        msbRegisterUtil.register(initServiceEntity());\r
+        PowerMock.mockStatic(MicroServiceConfig.class);\r
+        EasyMock.expect(MicroServiceConfig.getMsbIpAndPort()).andReturn(msbAddrInfo);\r
 \r
-        PowerMock.verifyAll();\r
-    }\r
+        MSBServiceClient client = PowerMock.createMock(MSBServiceClient.class);\r
+        PowerMock.expectNew(MSBServiceClient.class, msbAddrInfo[0], Integer.parseInt(msbAddrInfo[1])).andReturn(client);\r
 \r
-    private ServiceRegisterEntity initServiceEntity() {\r
-        ServiceRegisterEntity serviceRegisterEntity = new ServiceRegisterEntity();\r
-        serviceRegisterEntity.setServiceName("holmes-rule-mgmt");\r
-        serviceRegisterEntity.setProtocol("REST");\r
-        serviceRegisterEntity.setVersion("v1");\r
-        serviceRegisterEntity.setUrl("/onapapi/holmes-rule-mgmt/v1");\r
-        serviceRegisterEntity.setSingleNode(MicroServiceConfig.getServiceIp(), "9101", 0);\r
-        serviceRegisterEntity.setVisualRange("1|0");\r
-        return serviceRegisterEntity;\r
-    }\r
+        EasyMock.expect(client.registerMicroServiceInfo(msi, false)).andReturn(null);\r
 \r
-    class MicroserviceBusRestProxy implements MicroserviceBusRest {\r
+        EasyMock.expect(client.registerMicroServiceInfo(msi, false)).andReturn(new MicroServiceFullInfo());\r
 \r
-        @Override\r
-        public ServiceRegisterEntity registerServce(@QueryParam("createOrUpdate") String createOrUpdate,\r
-                ServiceRegisterEntity entity) {\r
-            return null;\r
+        PowerMock.replayAll();\r
+\r
+        try {\r
+            msbRegisterUtil.register2Msb(msi);\r
+        } catch (CorrelationException e) {\r
+            // Do nothing\r
         }\r
+\r
+        PowerMock.verifyAll();\r
     }\r
 }
\ No newline at end of file