From 81bd67a59dfe34d976c504e5ba330ce99f175220 Mon Sep 17 00:00:00 2001
From: eeimmis <michael.morris@ericsson.com>
Date: Tue, 6 Feb 2018 09:43:40 +0000
Subject: Fix technical debt/JUnit on MSB

Unit tests added and technical debt removed

Issue-ID: POLICY-455
Change-Id: Ib10613ff7cac64bb576046e038b2acbd66152648
Signed-off-by: mmis <michael.morris@ericsson.com>
---
 .../policy/msb/client/MSBServiceExceptionTest.java | 30 +++++++++++
 .../policy/msb/client/MSBServiceManagerTest.java   | 40 ++++++++++++++
 .../java/org/onap/policy/msb/client/NodeTest.java  | 62 ++++++++++++++++++++++
 .../src/test/resources/msbPropertyFile.properties  |  2 +
 4 files changed, 134 insertions(+)
 create mode 100644 controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MSBServiceExceptionTest.java
 create mode 100644 controlloop/common/msb/src/test/java/org/onap/policy/msb/client/NodeTest.java
 create mode 100644 controlloop/common/msb/src/test/resources/msbPropertyFile.properties

(limited to 'controlloop/common/msb/src/test')

diff --git a/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MSBServiceExceptionTest.java b/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MSBServiceExceptionTest.java
new file mode 100644
index 000000000..80c453eff
--- /dev/null
+++ b/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MSBServiceExceptionTest.java
@@ -0,0 +1,30 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.policy.msb.client;
+
+import org.junit.Test;
+import org.onap.policy.common.utils.test.ExceptionsTester;
+
+public class MSBServiceExceptionTest extends ExceptionsTester{
+	
+	@Test
+	public void test() throws Exception {
+		test(MSBServiceException.class);
+	}
+
+}
diff --git a/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MSBServiceManagerTest.java b/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MSBServiceManagerTest.java
index 9ab54f7ea..771bb4921 100644
--- a/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MSBServiceManagerTest.java
+++ b/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MSBServiceManagerTest.java
@@ -14,6 +14,7 @@
 package org.onap.policy.msb.client;
 
 import org.junit.*;
+import org.junit.rules.ExpectedException;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.onap.msb.sdk.discovery.common.RouteException;
@@ -23,11 +24,14 @@ import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;
 import org.onap.policy.msb.client.MSBServiceManager;
 import org.onap.policy.msb.client.Node;
 
+import java.io.IOException;
+import java.lang.reflect.Field;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.HashSet;
 import java.util.Set;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
@@ -36,6 +40,9 @@ import static org.mockito.Mockito.when;
 public class MSBServiceManagerTest {
     @Mock
     private MSBServiceClient msbClient;
+    
+    @Rule
+	public ExpectedException expectedException = ExpectedException.none();
 
     private MSBServiceManager msbManager;
 
@@ -101,6 +108,39 @@ public class MSBServiceManagerTest {
         assertTrue(node.getIp() == null);
         assertTrue(node.getPort() == null);
     }
+    
+    @Test
+    public void testReadMsbPolicyProperites_noPropertyFileSpecifed_throwsException() throws MSBServiceException, IOException {
+  	  expectedException.expect(MSBServiceException.class);
+  	  expectedException.expectMessage("No msb.policy.properties specified.");
+  	  System.clearProperty("msb.policy.properties");
+        msbManager = new MSBServiceManager();
+    }
+    
+    @Test 
+    public void testReadMsbPolicyProperites_propertyFileDoesNotExist_throwsException() throws MSBServiceException, IOException {
+  	  expectedException.expect(MSBServiceException.class);
+  	  expectedException.expectMessage("No msb.policy.properties specified.");
+  	  System.setProperty("msb.policy.properties", "nonExistingPropertyFile.txt");
+        msbManager = new MSBServiceManager();
+        System.clearProperty("msb.policy.properties");
+    }
+    
+    @Test 
+    public void testReadMsbPolicyProperites_propertyFileExists() throws MSBServiceException, IOException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
+  	  System.setProperty("msb.policy.properties", "src/test/resources/msbPropertyFile.properties");
+      msbManager = new MSBServiceManager();
+      System.clearProperty("msb.policy.properties");
+      
+      Field factoryField = msbManager.getClass().getDeclaredField("factory");
+      factoryField.setAccessible(true);
+      MSBServiceFactory msbServiceFactory = (MSBServiceFactory) factoryField.get(msbManager);
+      
+      Field msbClientField = msbServiceFactory.getClass().getDeclaredField("msbClient");
+      msbClientField.setAccessible(true);
+      MSBServiceClient msbClient = (MSBServiceClient) msbClientField.get(msbServiceFactory);
+      assertEquals("127.0.0.1:20", msbClient.getMsbSvrAddress());
+    }
 
     public static MicroServiceFullInfo build(String ip,String port){
         MicroServiceFullInfo serviceInfo = new MicroServiceFullInfo();
diff --git a/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/NodeTest.java b/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/NodeTest.java
new file mode 100644
index 000000000..ed1d55f2c
--- /dev/null
+++ b/controlloop/common/msb/src/test/java/org/onap/policy/msb/client/NodeTest.java
@@ -0,0 +1,62 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.policy.msb.client;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class NodeTest {
+
+	@Test
+	public void testSetAndGetName() {
+		Node node = new Node();
+		final String name = "myName";
+		node.setName(name);
+		assertEquals(name, node.getName());
+	}
+
+	@Test
+	public void testSetAndGetIp() {
+		Node node = new Node();
+		final String ip = "127.0.0.1";
+		node.setIp(ip);
+		assertEquals(ip, node.getIp());
+	}
+
+	@Test
+	public void testSetAndGetPort() {
+		Node node = new Node();
+		final String port = "1001";
+		node.setPort(port);
+		assertEquals(port, node.getPort());
+	}
+
+	@Test
+	public void testToString() {
+		Node node = new Node();
+		final String name = "myName";
+		final String ip = "127.0.0.1";
+		final String port = "1001";
+		node.setName(name);
+		node.setIp(ip);
+		node.setPort(port);
+		assertEquals("Node{name='myName', ip='127.0.0.1', port='1001'}", node.toString());
+	}
+
+}
diff --git a/controlloop/common/msb/src/test/resources/msbPropertyFile.properties b/controlloop/common/msb/src/test/resources/msbPropertyFile.properties
new file mode 100644
index 000000000..98666e201
--- /dev/null
+++ b/controlloop/common/msb/src/test/resources/msbPropertyFile.properties
@@ -0,0 +1,2 @@
+msb.ip=127.0.0.1
+msb.port=20
\ No newline at end of file
-- 
cgit 1.2.3-korg