diff options
8 files changed, 148 insertions, 13 deletions
diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PIPEngineGetHistory.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PIPEngineGetHistory.java index bfdff4d7f..21bdcd853 100644 --- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PIPEngineGetHistory.java +++ b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PIPEngineGetHistory.java @@ -140,7 +140,7 @@ public class PIPEngineGetHistory extends StdConfigurableEngine{ operation = getRecipe(pipFinder).iterator().next(); target = getTarget(pipFinder).iterator().next(); } catch (Exception e) { - logger.debug("could not retrieve actor, operation, or target from PIP finder"); + logger.debug("could not retrieve actor, operation, or target from PIP finder", e); return StdPIPResponse.PIP_RESPONSE_EMPTY; } 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 |