aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorliamfallon <liam.fallon@ericsson.com>2018-05-08 11:28:40 +0100
committerliamfallon <liam.fallon@ericsson.com>2018-05-08 11:53:07 +0100
commit0dea75c506058a9e999d30ec1916c7530504a8d6 (patch)
tree1c7253dc4594c7275bd73fc049ca632af12ab17e
parent973929cfd6cd3e5ba3a837fa56d35b210307c9ac (diff)
Configuration as argument to BRMS Gateway
Added the ability specify the parameter file for the BRMS Gateway as a argument to allow different configurations to be used during unit test. This will allow more thorought unit tests to be written. Replaced System.exit() calls with exeception throws becasue System.exit() call bring down the entire JVM during testing, terminating the test at that point. Changed the package path on four unit test files to the correct path for unit tests for the BRMS gateway. Added a unit test for sanity test of the configuraiton file argument. Issue-ID: POLICY-773 Change-Id: Ic095a5131ddb846eaf3b11157853fab71908c629 Signed-off-by: liamfallon <liam.fallon@ericsson.com>
-rw-r--r--BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsGateway.java29
-rw-r--r--BRMSGateway/src/test/java/org/onap/policy/brms/BrmsJpaTest.java (renamed from BRMSGateway/src/test/java/org/onap/brmsgw/test/BrmsJpaTest.java)2
-rw-r--r--BRMSGateway/src/test/java/org/onap/policy/brms/BrmsPushTest.java (renamed from BRMSGateway/src/test/java/org/onap/brmsgw/test/BrmsPushTest.java)6
-rw-r--r--BRMSGateway/src/test/java/org/onap/policy/brms/ControllerPojoTest.java (renamed from BRMSGateway/src/test/java/org/onap/brmsgw/test/ControllerPojoTest.java)2
-rw-r--r--BRMSGateway/src/test/java/org/onap/policy/brms/NotificationPojoTest.java (renamed from BRMSGateway/src/test/java/org/onap/brmsgw/test/NotificationPojoTest.java)2
-rw-r--r--BRMSGateway/src/test/java/org/onap/policy/brms/api/BrmsGatewayMainTest.java59
-rw-r--r--BRMSGateway/src/test/java/org/onap/policy/brms/api/BrmsGatewayTest.java2
7 files changed, 90 insertions, 12 deletions
diff --git a/BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsGateway.java b/BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsGateway.java
index d12178319..e743794ec 100644
--- a/BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsGateway.java
+++ b/BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsGateway.java
@@ -34,7 +34,7 @@ import org.onap.policy.xacml.api.XACMLErrorConstants;
*
* @version 0.1
*/
-class BrmsGateway {
+public class BrmsGateway {
private static final Logger logger = FlexLogger.getLogger(BrmsGateway.class);
private static final String CONFIGFILE = "config.properties";
@@ -45,15 +45,34 @@ class BrmsGateway {
// Default private constructor
}
+ /**
+ * Main method.
+ * @param args The path to the configuration file is the only allowed optional argument
+ * @throws Exception on BRMS Gateway errors
+ */
public static void main(final String[] args) throws Exception {
+ // The configuration file containing the configuration for the BRMS Gateway
+ String configFile = CONFIGFILE;
+
+ // Check if a configuration file has been specified as a parameter
+ if (args.length == 1) {
+ configFile = args[0];
+ }
+ else if (args.length > 1) {
+ String errorString = "usage: " + BrmsGateway.class.getCanonicalName() + " [configFile]";
+ logger.error(errorString);
+ throw new PolicyException(errorString);
+ }
+
// Initialize Handler.
logger.info("Initializing BRMS Handler");
BrmsHandler brmsHandler = null;
try {
- brmsHandler = new BrmsHandler(CONFIGFILE);
+ brmsHandler = new BrmsHandler(configFile);
} catch (final PolicyException e) {
- logger.error("Check your property file: " + e.getMessage(), e);
- System.exit(1);
+ String errorString = "Check your property file: " + e.getMessage();
+ logger.error(errorString);
+ throw new PolicyException(errorString);
}
// Set Handler with Auto Notification and initialize policyEngine
@@ -62,7 +81,7 @@ class BrmsGateway {
policyEngine = new PolicyEngine(CONFIGFILE, NotificationScheme.AUTO_ALL_NOTIFICATIONS, brmsHandler);
} catch (final Exception e) {
logger.error(XACMLErrorConstants.ERROR_UNKNOWN + "Error while Initializing Policy Engine " + e.getMessage(),
- e);
+ e);
}
// Keep Running....
diff --git a/BRMSGateway/src/test/java/org/onap/brmsgw/test/BrmsJpaTest.java b/BRMSGateway/src/test/java/org/onap/policy/brms/BrmsJpaTest.java
index 32ed314d5..2d5aaa496 100644
--- a/BRMSGateway/src/test/java/org/onap/brmsgw/test/BrmsJpaTest.java
+++ b/BRMSGateway/src/test/java/org/onap/policy/brms/BrmsJpaTest.java
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.brmsgw.test;
+package org.onap.policy.brms;
import static org.junit.Assert.assertEquals;
diff --git a/BRMSGateway/src/test/java/org/onap/brmsgw/test/BrmsPushTest.java b/BRMSGateway/src/test/java/org/onap/policy/brms/BrmsPushTest.java
index 36e633638..4a1b4f8d4 100644
--- a/BRMSGateway/src/test/java/org/onap/brmsgw/test/BrmsPushTest.java
+++ b/BRMSGateway/src/test/java/org/onap/policy/brms/BrmsPushTest.java
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.brmsgw.test;
+package org.onap.policy.brms;
import static org.junit.Assert.assertNotNull;
@@ -100,8 +100,8 @@ public class BrmsPushTest {
public void brmsHandlerFailTest6() throws PolicyException {
PropertyChange prop = new PropertyChange();
prop.key = "repositoryURL";
- prop.value =
- "http://nexus:8081/nexus/content/repositories/releases, http://nexus:8081/nexus/content/repositories/releases";
+ prop.value = "http://nexus:8081/nexus/content/repositories/releases,"
+ + "http://nexus:8081/nexus/content/repositories/releases";
prop.remove = false;
final List<PropertyChange> props = new LinkedList<>();
props.add(prop);
diff --git a/BRMSGateway/src/test/java/org/onap/brmsgw/test/ControllerPojoTest.java b/BRMSGateway/src/test/java/org/onap/policy/brms/ControllerPojoTest.java
index 21534ddcd..e00689dc8 100644
--- a/BRMSGateway/src/test/java/org/onap/brmsgw/test/ControllerPojoTest.java
+++ b/BRMSGateway/src/test/java/org/onap/policy/brms/ControllerPojoTest.java
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.brmsgw.test;
+package org.onap.policy.brms;
import static org.junit.Assert.assertEquals;
diff --git a/BRMSGateway/src/test/java/org/onap/brmsgw/test/NotificationPojoTest.java b/BRMSGateway/src/test/java/org/onap/policy/brms/NotificationPojoTest.java
index f83b749f7..ef6fff087 100644
--- a/BRMSGateway/src/test/java/org/onap/brmsgw/test/NotificationPojoTest.java
+++ b/BRMSGateway/src/test/java/org/onap/policy/brms/NotificationPojoTest.java
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.brmsgw.test;
+package org.onap.policy.brms;
import static org.junit.Assert.assertEquals;
diff --git a/BRMSGateway/src/test/java/org/onap/policy/brms/api/BrmsGatewayMainTest.java b/BRMSGateway/src/test/java/org/onap/policy/brms/api/BrmsGatewayMainTest.java
new file mode 100644
index 000000000..e20986fa6
--- /dev/null
+++ b/BRMSGateway/src/test/java/org/onap/policy/brms/api/BrmsGatewayMainTest.java
@@ -0,0 +1,59 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * 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.brms.api;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+import org.onap.policy.api.PolicyException;
+
+public class BrmsGatewayMainTest {
+
+ @Test
+ public void testTooManyArguments() {
+ try {
+ String[] args = {"aaa", "bbb"};
+ BrmsGateway.main(args);
+ fail("test should throw an exception");
+ }
+ catch (PolicyException e) {
+ assertEquals("usage: org.onap.policy.brms.api.BrmsGateway [configFile]", e.getMessage());
+ }
+ catch (Exception e) {
+ fail("test should throw a PolicyException");
+ }
+
+ try {
+ String[] args = {"aaa"};
+ BrmsGateway.main(args);
+ fail("test should throw an exception");
+ }
+ catch (PolicyException e) {
+ assertEquals("Check your property file: PE300 - Data Issue: "
+ + "Config File doesn't Exist in the specified Path aaa", e.getMessage());
+ }
+ catch (Exception e) {
+ fail("test should throw a PolicyException");
+ }
+ }
+
+}
diff --git a/BRMSGateway/src/test/java/org/onap/policy/brms/api/BrmsGatewayTest.java b/BRMSGateway/src/test/java/org/onap/policy/brms/api/BrmsGatewayTest.java
index b3f836fc5..fd8a7ed3b 100644
--- a/BRMSGateway/src/test/java/org/onap/policy/brms/api/BrmsGatewayTest.java
+++ b/BRMSGateway/src/test/java/org/onap/policy/brms/api/BrmsGatewayTest.java
@@ -52,7 +52,7 @@ public class BrmsGatewayTest {
// Run app
try {
- final String[] args = null;
+ final String[] args = new String[0];
BrmsGateway.main(args);
} catch (final Exception ex) {
fail("Not expected an exception: " + ex);