From 81bd67a59dfe34d976c504e5ba330ce99f175220 Mon Sep 17 00:00:00 2001 From: eeimmis 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 --- controlloop/common/msb/pom.xml | 6 +++ .../onap/policy/msb/client/MSBServiceFactory.java | 16 +++--- .../onap/policy/msb/client/MSBServiceManager.java | 3 -- .../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 + 7 files changed, 147 insertions(+), 12 deletions(-) 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') diff --git a/controlloop/common/msb/pom.xml b/controlloop/common/msb/pom.xml index 54e68da5b..a24f333b6 100644 --- a/controlloop/common/msb/pom.xml +++ b/controlloop/common/msb/pom.xml @@ -46,6 +46,12 @@ 1.2.3 test + + org.onap.policy.common + utils-test + ${project.version} + test + diff --git a/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MSBServiceFactory.java b/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MSBServiceFactory.java index 5332c0df2..7ebb5d6dc 100644 --- a/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MSBServiceFactory.java +++ b/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MSBServiceFactory.java @@ -20,7 +20,6 @@ import java.io.Serializable; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.Iterator; import java.util.Properties; import org.onap.msb.sdk.discovery.common.RouteException; @@ -34,7 +33,7 @@ import org.slf4j.LoggerFactory; public class MSBServiceFactory implements Serializable { private static final long serialVersionUID = 4638414146278012425L; private static final Logger logger = LoggerFactory.getLogger(MSBServiceFactory.class); - private static final String msbPropertyFile = "msb.policy.properties"; + private static final String MSB_PROPERTY_FILE = "msb.policy.properties"; private static final String MSB_IP = "msb.ip"; private static final String MSB_PORT = "msb.port"; private transient MSBServiceClient msbClient; @@ -50,15 +49,16 @@ public class MSBServiceFactory implements Serializable { private void init() throws MSBServiceException,IOException { properties = new Properties(); - Path file = Paths.get(System.getProperty(msbPropertyFile)); - if (file == null) { + String propertyFilePath = System.getProperty(MSB_PROPERTY_FILE); + if (propertyFilePath == null) { throw new MSBServiceException("No msb.policy.properties specified."); } - if (Files.notExists(file)) { + Path file = Paths.get(propertyFilePath); + if (!file.toFile().exists()) { throw new MSBServiceException("No msb.policy.properties specified."); } - if (Files.isReadable(file) == false) { + if (!Files.isReadable(file)) { throw new MSBServiceException ("Repository is NOT readable: " + file.toAbsolutePath()); } try(InputStream is = new FileInputStream(file.toFile())){ @@ -94,9 +94,7 @@ public class MSBServiceFactory implements Serializable { node.setName(serviceName); try { MicroServiceFullInfo serviceInfo = msbClient.queryMicroServiceInfo(serviceName,version); - Iterator iterator = serviceInfo.getNodes().iterator(); - while(iterator.hasNext()) { - NodeInfo nodeInfo = (NodeInfo)iterator.next(); + for (NodeInfo nodeInfo: serviceInfo.getNodes()){ node.setIp(nodeInfo.getIp()); node.setPort(nodeInfo.getPort()); } diff --git a/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MSBServiceManager.java b/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MSBServiceManager.java index cbff8d88a..ccb13ece4 100644 --- a/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MSBServiceManager.java +++ b/controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MSBServiceManager.java @@ -14,14 +14,11 @@ package org.onap.policy.msb.client; import org.onap.msb.sdk.httpclient.msb.MSBServiceClient; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.IOException; import java.io.Serializable; public class MSBServiceManager implements Serializable { - private static final Logger logger = LoggerFactory.getLogger(MSBServiceManager.class); private static final long serialVersionUID = -2517971308551895215L; private MSBServiceFactory factory; 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