Fix technical debt/JUnit on MSB
[policy/drools-applications.git] / controlloop / common / msb / src / test / java / org / onap / policy / msb / client / MSBServiceManagerTest.java
index 9ab54f7..771bb49 100644 (file)
@@ -14,6 +14,7 @@
 package org.onap.policy.msb.client;\r
 \r
 import org.junit.*;\r
+import org.junit.rules.ExpectedException;\r
 import org.mockito.Mock;\r
 import org.mockito.MockitoAnnotations;\r
 import org.onap.msb.sdk.discovery.common.RouteException;\r
@@ -23,11 +24,14 @@ import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;
 import org.onap.policy.msb.client.MSBServiceManager;\r
 import org.onap.policy.msb.client.Node;\r
 \r
+import java.io.IOException;\r
+import java.lang.reflect.Field;\r
 import java.net.InetAddress;\r
 import java.net.UnknownHostException;\r
 import java.util.HashSet;\r
 import java.util.Set;\r
 \r
+import static org.junit.Assert.assertEquals;\r
 import static org.junit.Assert.assertNotNull;\r
 import static org.junit.Assert.assertNull;\r
 import static org.junit.Assert.assertTrue;\r
@@ -36,6 +40,9 @@ import static org.mockito.Mockito.when;
 public class MSBServiceManagerTest {\r
     @Mock\r
     private MSBServiceClient msbClient;\r
+    \r
+    @Rule\r
+       public ExpectedException expectedException = ExpectedException.none();\r
 \r
     private MSBServiceManager msbManager;\r
 \r
@@ -101,6 +108,39 @@ public class MSBServiceManagerTest {
         assertTrue(node.getIp() == null);\r
         assertTrue(node.getPort() == null);\r
     }\r
+    \r
+    @Test\r
+    public void testReadMsbPolicyProperites_noPropertyFileSpecifed_throwsException() throws MSBServiceException, IOException {\r
+         expectedException.expect(MSBServiceException.class);\r
+         expectedException.expectMessage("No msb.policy.properties specified.");\r
+         System.clearProperty("msb.policy.properties");\r
+        msbManager = new MSBServiceManager();\r
+    }\r
+    \r
+    @Test \r
+    public void testReadMsbPolicyProperites_propertyFileDoesNotExist_throwsException() throws MSBServiceException, IOException {\r
+         expectedException.expect(MSBServiceException.class);\r
+         expectedException.expectMessage("No msb.policy.properties specified.");\r
+         System.setProperty("msb.policy.properties", "nonExistingPropertyFile.txt");\r
+        msbManager = new MSBServiceManager();\r
+        System.clearProperty("msb.policy.properties");\r
+    }\r
+    \r
+    @Test \r
+    public void testReadMsbPolicyProperites_propertyFileExists() throws MSBServiceException, IOException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {\r
+         System.setProperty("msb.policy.properties", "src/test/resources/msbPropertyFile.properties");\r
+      msbManager = new MSBServiceManager();\r
+      System.clearProperty("msb.policy.properties");\r
+      \r
+      Field factoryField = msbManager.getClass().getDeclaredField("factory");\r
+      factoryField.setAccessible(true);\r
+      MSBServiceFactory msbServiceFactory = (MSBServiceFactory) factoryField.get(msbManager);\r
+      \r
+      Field msbClientField = msbServiceFactory.getClass().getDeclaredField("msbClient");\r
+      msbClientField.setAccessible(true);\r
+      MSBServiceClient msbClient = (MSBServiceClient) msbClientField.get(msbServiceFactory);\r
+      assertEquals("127.0.0.1:20", msbClient.getMsbSvrAddress());\r
+    }\r
 \r
     public static MicroServiceFullInfo build(String ip,String port){\r
         MicroServiceFullInfo serviceInfo = new MicroServiceFullInfo();\r