aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--controlloop/common/msb/pom.xml6
-rw-r--r--controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MSBServiceFactory.java16
-rw-r--r--controlloop/common/msb/src/main/java/org/onap/policy/msb/client/MSBServiceManager.java3
-rw-r--r--controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MSBServiceExceptionTest.java30
-rw-r--r--controlloop/common/msb/src/test/java/org/onap/policy/msb/client/MSBServiceManagerTest.java40
-rw-r--r--controlloop/common/msb/src/test/java/org/onap/policy/msb/client/NodeTest.java62
-rw-r--r--controlloop/common/msb/src/test/resources/msbPropertyFile.properties2
7 files changed, 147 insertions, 12 deletions
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 @@
<version>1.2.3</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.onap.policy.common</groupId>
+ <artifactId>utils-test</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
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