aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradheli.tavares <adheli.tavares@est.tech>2021-04-13 16:33:41 +0100
committeradheli.tavares <adheli.tavares@est.tech>2021-04-16 10:34:17 +0100
commitadfc3ee02f3194a143bcea430e5e3aeb99a23206 (patch)
treee54813c7d0d91b87a4d2c31f9b1e5d8ec7cdc477
parent8c6123d8c19d95115dc865784ccb1dc87d24f35c (diff)
Refactor DistributionCommandLineArguments class
CMD Class to use the CMD Handler from Common. Issue-ID: POLICY-3129 Change-Id: I2219cdb7db5669de71c3b2b90c496321b61d14eb Signed-off-by: adheli.tavares <adheli.tavares@est.tech>
-rw-r--r--main/src/main/java/org/onap/policy/distribution/main/startstop/DistributionCommandLineArguments.java206
-rw-r--r--main/src/main/java/org/onap/policy/distribution/main/startstop/Main.java4
-rw-r--r--main/src/test/java/org/onap/policy/distribution/main/parameters/TestDistributionParameterHandler.java200
-rw-r--r--main/src/test/java/org/onap/policy/distribution/main/startstop/TestDistributionCommandLineArguments.java26
4 files changed, 122 insertions, 314 deletions
diff --git a/main/src/main/java/org/onap/policy/distribution/main/startstop/DistributionCommandLineArguments.java b/main/src/main/java/org/onap/policy/distribution/main/startstop/DistributionCommandLineArguments.java
index 69849c47..fedbe508 100644
--- a/main/src/main/java/org/onap/policy/distribution/main/startstop/DistributionCommandLineArguments.java
+++ b/main/src/main/java/org/onap/policy/distribution/main/startstop/DistributionCommandLineArguments.java
@@ -2,6 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2018 Ericsson. All rights reserved.
* Modifications Copyright (C) 2019 AT&T Intellectual Property.
+ * Modifications Copyright (C) 2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,62 +22,21 @@
package org.onap.policy.distribution.main.startstop;
-import java.io.File;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.net.URL;
-import java.util.Arrays;
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.DefaultParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-import org.onap.policy.common.utils.resources.ResourceUtils;
-import org.onap.policy.distribution.main.PolicyDistributionException;
+import org.onap.policy.common.utils.cmd.CommandLineArgumentsHandler;
+import org.onap.policy.common.utils.cmd.CommandLineException;
+import org.onap.policy.common.utils.resources.MessageConstants;
import org.onap.policy.distribution.main.PolicyDistributionRuntimeException;
/**
* This class reads and handles command line parameters for the policy distribution main program.
*/
-public class DistributionCommandLineArguments {
- private static final String FILE_MESSAGE_PREAMBLE = " file \"";
- private static final int HELP_LINE_LENGTH = 120;
-
- // Apache Commons CLI options
- private final Options options;
-
- // The command line options
- private String configurationFilePath = null;
+public class DistributionCommandLineArguments extends CommandLineArgumentsHandler {
/**
- * Construct the options for the CLI editor.
+ * Construct the options for the CLI editor from super.
*/
public DistributionCommandLineArguments() {
- //@formatter:off
- options = new Options();
- options.addOption(Option.builder("h")
- .longOpt("help")
- .desc("outputs the usage of this command")
- .required(false)
- .type(Boolean.class)
- .build());
- options.addOption(Option.builder("v")
- .longOpt("version")
- .desc("outputs the version of policy distribution")
- .required(false)
- .type(Boolean.class)
- .build());
- options.addOption(Option.builder("c")
- .longOpt("config-file")
- .desc("the full path to the configuration file to use, "
- + "the configuration file must be a Json file containing the policy distribution parameters")
- .hasArg()
- .argName("CONFIG_FILE")
- .required(false)
- .type(String.class)
- .build());
- //@formatter:on
+ super(Main.class.getName(), MessageConstants.POLICY_DISTRIBUTION);
}
/**
@@ -85,162 +45,12 @@ public class DistributionCommandLineArguments {
* @param args The command line arguments
*/
public DistributionCommandLineArguments(final String[] args) {
- // Set up the options with the default constructor
this();
- // Parse the arguments
try {
parse(args);
- } catch (final PolicyDistributionException e) {
+ } catch (final CommandLineException e) {
throw new PolicyDistributionRuntimeException("parse error on policy distribution parameters", e);
}
}
-
- /**
- * Parse the command line options.
- *
- * @param args The command line arguments
- * @return a string with a message for help and version, or null if there is no message
- * @throws PolicyDistributionException on command argument errors
- */
- public String parse(final String[] args) throws PolicyDistributionException {
- // Clear all our arguments
- setConfigurationFilePath(null);
-
- CommandLine commandLine = null;
- try {
- commandLine = new DefaultParser().parse(options, args);
- } catch (final ParseException e) {
- throw new PolicyDistributionException("invalid command line arguments specified : " + e.getMessage());
- }
-
- // Arguments left over after Commons CLI does its stuff
- final String[] remainingArgs = commandLine.getArgs();
-
- if (remainingArgs.length > 0 && commandLine.hasOption('c') || remainingArgs.length > 0) {
- throw new PolicyDistributionException(
- "too many command line arguments specified : " + Arrays.toString(args));
- }
-
- if (remainingArgs.length == 1) {
- configurationFilePath = remainingArgs[0];
- }
-
- if (commandLine.hasOption('h')) {
- return help(Main.class.getName());
- }
-
- if (commandLine.hasOption('v')) {
- return version();
- }
-
- if (commandLine.hasOption('c')) {
- setConfigurationFilePath(commandLine.getOptionValue('c'));
- }
-
- return null;
- }
-
- /**
- * Validate the command line options.
- *
- * @throws PolicyDistributionException on command argument validation errors
- */
- public void validate() throws PolicyDistributionException {
- validateReadableFile("policy distribution configuration", configurationFilePath);
- }
-
- /**
- * Print version information for policy distribution.
- *
- * @return the version string
- */
- public String version() {
- return ResourceUtils.getResourceAsString("version.txt");
- }
-
- /**
- * Print help information for policy distribution.
- *
- * @param mainClassName the main class name
- * @return the help string
- */
- public String help(final String mainClassName) {
- final HelpFormatter helpFormatter = new HelpFormatter();
- final StringWriter stringWriter = new StringWriter();
- final PrintWriter printWriter = new PrintWriter(stringWriter);
-
- helpFormatter.printHelp(printWriter, HELP_LINE_LENGTH, mainClassName + " [options...]", "options", options, 0,
- 0, "");
-
- return stringWriter.toString();
- }
-
- /**
- * Gets the configuration file path.
- *
- * @return the configuration file path
- */
- public String getConfigurationFilePath() {
- return configurationFilePath;
- }
-
- /**
- * Gets the full expanded configuration file path.
- *
- * @return the configuration file path
- */
- public String getFullConfigurationFilePath() {
- return ResourceUtils.getFilePath4Resource(getConfigurationFilePath());
- }
-
- /**
- * Sets the configuration file path.
- *
- * @param configurationFilePath the configuration file path
- */
- public void setConfigurationFilePath(final String configurationFilePath) {
- this.configurationFilePath = configurationFilePath;
-
- }
-
- /**
- * Check set configuration file path.
- *
- * @return true, if check set configuration file path
- */
- public boolean checkSetConfigurationFilePath() {
- return configurationFilePath != null && configurationFilePath.length() > 0;
- }
-
- /**
- * Validate readable file.
- *
- * @param fileTag the file tag
- * @param fileName the file name
- * @throws PolicyDistributionException on the file name passed as a parameter
- */
- private void validateReadableFile(final String fileTag, final String fileName) throws PolicyDistributionException {
- if (fileName == null || fileName.length() == 0) {
- throw new PolicyDistributionException(fileTag + " file was not specified as an argument");
- }
-
- // The file name refers to a resource on the local file system
- final URL fileUrl = ResourceUtils.getUrl4Resource(fileName);
- if (fileUrl == null) {
- throw new PolicyDistributionException(fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" does not exist");
- }
-
- final File theFile = new File(fileUrl.getPath());
- if (!theFile.exists()) {
- throw new PolicyDistributionException(fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" does not exist");
- }
- if (!theFile.isFile()) {
- throw new PolicyDistributionException(
- fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" is not a normal file");
- }
- if (!theFile.canRead()) {
- throw new PolicyDistributionException(fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" is ureadable");
- }
- }
}
diff --git a/main/src/main/java/org/onap/policy/distribution/main/startstop/Main.java b/main/src/main/java/org/onap/policy/distribution/main/startstop/Main.java
index 6acef4d4..83eee73c 100644
--- a/main/src/main/java/org/onap/policy/distribution/main/startstop/Main.java
+++ b/main/src/main/java/org/onap/policy/distribution/main/startstop/Main.java
@@ -4,6 +4,7 @@
* Copyright (C) 2019 Nordix Foundation.
* Modifications Copyright (C) 2020 AT&T Inc.
* Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
+ * Modifications Copyright (C) 2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,6 +25,7 @@
package org.onap.policy.distribution.main.startstop;
import java.util.Arrays;
+import org.onap.policy.common.utils.cmd.CommandLineException;
import org.onap.policy.common.utils.resources.MessageConstants;
import org.onap.policy.distribution.main.PolicyDistributionException;
import org.onap.policy.distribution.main.PolicyDistributionRuntimeException;
@@ -76,7 +78,7 @@ public class Main {
// Start the activator
activator.initialize();
- } catch (final PolicyDistributionException e) {
+ } catch (final PolicyDistributionException | CommandLineException e) {
throw new PolicyDistributionRuntimeException(
String.format(MessageConstants.START_FAILURE_MSG, MessageConstants.POLICY_DISTRIBUTION), e);
}
diff --git a/main/src/test/java/org/onap/policy/distribution/main/parameters/TestDistributionParameterHandler.java b/main/src/test/java/org/onap/policy/distribution/main/parameters/TestDistributionParameterHandler.java
index 6eb4cf77..dcafe68c 100644
--- a/main/src/test/java/org/onap/policy/distribution/main/parameters/TestDistributionParameterHandler.java
+++ b/main/src/test/java/org/onap/policy/distribution/main/parameters/TestDistributionParameterHandler.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2020 Nordix Foundation
+ * Modifications Copyright (C) 2020-2021 Nordix Foundation.
* Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -31,6 +31,7 @@ import java.nio.file.Files;
import java.nio.file.Paths;
import org.junit.Test;
import org.onap.policy.common.parameters.ParameterRuntimeException;
+import org.onap.policy.common.utils.cmd.CommandLineException;
import org.onap.policy.distribution.main.PolicyDistributionException;
import org.onap.policy.distribution.main.startstop.DistributionCommandLineArguments;
import org.onap.policy.distribution.main.testclasses.DummyPolicyDecoderParameterGroup;
@@ -43,48 +44,41 @@ import org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParamet
*/
public class TestDistributionParameterHandler {
@Test
- public void testParameterHandlerNoParameterFile() throws PolicyDistributionException {
- verifyFailure("NoParameterFile.json",
- PolicyDistributionException.class,
- "FileNotFoundException");
+ public void testParameterHandlerNoParameterFile() throws PolicyDistributionException, CommandLineException {
+ verifyFailure("NoParameterFile.json", PolicyDistributionException.class, "FileNotFoundException");
}
@Test
- public void testParameterHandlerEmptyParameters() throws PolicyDistributionException {
- verifyFailure("EmptyParameters.json",
- PolicyDistributionException.class,
- "no parameters found in \"parameters/EmptyParameters.json\"");
+ public void testParameterHandlerEmptyParameters() throws PolicyDistributionException, CommandLineException {
+ verifyFailure("EmptyParameters.json", PolicyDistributionException.class,
+ "no parameters found in \"parameters/EmptyParameters.json\"");
}
@Test
- public void testParameterHandlerBadParameters() throws PolicyDistributionException {
- verifyFailure("BadParameters.json",
- PolicyDistributionException.class,
- "error reading parameters from \"parameters/BadParameters.json\"\n"
- + "(JsonSyntaxException):java.lang.IllegalStateException: "
- + "Expected a string but was BEGIN_ARRAY at line 2 column 15 path $.name");
+ public void testParameterHandlerBadParameters() throws PolicyDistributionException, CommandLineException {
+ verifyFailure("BadParameters.json", PolicyDistributionException.class,
+ "error reading parameters from \"parameters/BadParameters.json\"\n"
+ + "(JsonSyntaxException):java.lang.IllegalStateException: "
+ + "Expected a string but was BEGIN_ARRAY at line 2 column 15 path $.name");
}
@Test
- public void testParameterHandlerInvalidParameters() throws PolicyDistributionException {
- verifyFailure("InvalidParameters.json",
- PolicyDistributionException.class,
- "error reading parameters from \"parameters/InvalidParameters.json\"\n"
- + "(JsonSyntaxException):java.lang.IllegalStateException: "
- + "Expected a string but was BEGIN_ARRAY at line 2 column 15 path $.name");
+ public void testParameterHandlerInvalidParameters() throws PolicyDistributionException, CommandLineException {
+ verifyFailure("InvalidParameters.json", PolicyDistributionException.class,
+ "error reading parameters from \"parameters/InvalidParameters.json\"\n"
+ + "(JsonSyntaxException):java.lang.IllegalStateException: "
+ + "Expected a string but was BEGIN_ARRAY at line 2 column 15 path $.name");
}
@Test
- public void testParameterHandlerNoParameters() throws PolicyDistributionException {
- verifyFailure("NoParameters.json",
- ParameterRuntimeException.class,
- "map parameter \"receptionHandlerParameters\" is null");
+ public void testParameterHandlerNoParameters() throws PolicyDistributionException, CommandLineException {
+ verifyFailure("NoParameters.json", ParameterRuntimeException.class,
+ "map parameter \"receptionHandlerParameters\" is null");
}
@Test
- public void testParameterHandlerMinumumParameters() throws PolicyDistributionException {
- final String[] minArgumentString =
- { "-c", "parameters/MinimumParameters.json" };
+ public void testParameterHandlerMinumumParameters() throws PolicyDistributionException, CommandLineException {
+ final String[] minArgumentString = {"-c", "parameters/MinimumParameters.json"};
final DistributionCommandLineArguments minArguments = new DistributionCommandLineArguments();
minArguments.parse(minArgumentString);
@@ -94,9 +88,8 @@ public class TestDistributionParameterHandler {
}
@Test
- public void testDistributionParameterGroup() throws PolicyDistributionException {
- final String[] distributionConfigParameters =
- { "-c", "parameters/DistributionConfigParameters.json" };
+ public void testDistributionParameterGroup() throws PolicyDistributionException, CommandLineException {
+ final String[] distributionConfigParameters = {"-c", "parameters/DistributionConfigParameters.json"};
final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
arguments.parse(distributionConfigParameters);
@@ -127,121 +120,116 @@ public class TestDistributionParameterHandler {
@Test
public void testDistributionParameterGroup_InvalidForwarderConfigurationClassName()
- throws PolicyDistributionException {
+ throws PolicyDistributionException, CommandLineException {
verifyFailure("DistributionConfigParameters_InvalidForwarderConfigurationClassName.json",
- PolicyDistributionException.class,
- "parameter \"parameterClassName\" value \"\" invalid in JSON file");
+ PolicyDistributionException.class, "parameter \"parameterClassName\" value \"\" invalid in JSON file");
}
@Test
public void testDistributionParameterGroup_UnknownForwarderConfigurationClassName()
- throws PolicyDistributionException {
+ throws PolicyDistributionException, CommandLineException {
verifyFailure("DistributionConfigParameters_UnknownForwarderConfigurationClassName.json",
- PolicyDistributionException.class,
- "parameter \"parameterClassName\" value \"org.onap.policy.Unknown\", could not find class");
+ PolicyDistributionException.class,
+ "parameter \"parameterClassName\" value \"org.onap.policy.Unknown\", could not find class");
}
@Test
- public void testDistributionParameterGroup_InvalidName() throws PolicyDistributionException {
- verifyFailure("DistributionConfigParameters_InvalidName.json",
- PolicyDistributionException.class,
- "field \"name\" type \"java.lang.String\" value \" \" INVALID, must be a non-blank string");
+ public void testDistributionParameterGroup_InvalidName() throws PolicyDistributionException, CommandLineException {
+ verifyFailure("DistributionConfigParameters_InvalidName.json", PolicyDistributionException.class,
+ "field \"name\" type \"java.lang.String\" value \" \" INVALID, must be a non-blank string");
}
@Test
- public void testDistributionParameterGroup_NoReceptionHandler() throws PolicyDistributionException {
- verifyFailure("DistributionConfigParameters_NoReceptionHandler.json",
- ParameterRuntimeException.class,
- "map parameter \"receptionHandlerParameters\" is null");
+ public void testDistributionParameterGroup_NoReceptionHandler()
+ throws PolicyDistributionException, CommandLineException {
+ verifyFailure("DistributionConfigParameters_NoReceptionHandler.json", ParameterRuntimeException.class,
+ "map parameter \"receptionHandlerParameters\" is null");
}
@Test
- public void testDistributionParameterGroup_EmptyReceptionHandler() throws PolicyDistributionException {
- verifyFailure("DistributionConfigParameters_EmptyReceptionHandler.json",
- PolicyDistributionException.class,
- "must have at least one reception handler\n");
+ public void testDistributionParameterGroup_EmptyReceptionHandler()
+ throws PolicyDistributionException, CommandLineException {
+ verifyFailure("DistributionConfigParameters_EmptyReceptionHandler.json", PolicyDistributionException.class,
+ "must have at least one reception handler\n");
}
@Test
- public void testDistributionParameterGroup_NoPolicyDecoder() throws PolicyDistributionException {
- verifyFailure("DistributionConfigParameters_NoPolicyDecoder.json",
- ParameterRuntimeException.class,
- "map parameter \"policyDecoders\" is null");
+ public void testDistributionParameterGroup_NoPolicyDecoder()
+ throws PolicyDistributionException, CommandLineException {
+ verifyFailure("DistributionConfigParameters_NoPolicyDecoder.json", ParameterRuntimeException.class,
+ "map parameter \"policyDecoders\" is null");
}
@Test
- public void testDistributionParameterGroup_NoPolicyForwarder() throws PolicyDistributionException {
- verifyFailure("DistributionConfigParameters_NoPolicyForwarder.json",
- ParameterRuntimeException.class,
- "map parameter \"policyForwarders\" is null");
+ public void testDistributionParameterGroup_NoPolicyForwarder()
+ throws PolicyDistributionException, CommandLineException {
+ verifyFailure("DistributionConfigParameters_NoPolicyForwarder.json", ParameterRuntimeException.class,
+ "map parameter \"policyForwarders\" is null");
}
@Test
- public void testDistributionParameterGroup_EmptyPolicyDecoder() throws PolicyDistributionException {
- verifyFailure("DistributionConfigParameters_EmptyPolicyDecoder.json",
- PolicyDistributionException.class,
- "must have at least one policy decoder\n");
+ public void testDistributionParameterGroup_EmptyPolicyDecoder()
+ throws PolicyDistributionException, CommandLineException {
+ verifyFailure("DistributionConfigParameters_EmptyPolicyDecoder.json", PolicyDistributionException.class,
+ "must have at least one policy decoder\n");
}
@Test
- public void testDistributionParameterGroup_EmptyPolicyForwarder() throws PolicyDistributionException {
- verifyFailure("DistributionConfigParameters_EmptyPolicyForwarder.json",
- PolicyDistributionException.class,
- "must have at least one policy forwarder\n");
+ public void testDistributionParameterGroup_EmptyPolicyForwarder()
+ throws PolicyDistributionException, CommandLineException {
+ verifyFailure("DistributionConfigParameters_EmptyPolicyForwarder.json", PolicyDistributionException.class,
+ "must have at least one policy forwarder\n");
}
@Test
public void testDistributionParameterGroup_InvalidReceptionHandlerParameters()
- throws PolicyDistributionException, IOException {
+ throws PolicyDistributionException, IOException, CommandLineException {
- String resultString = Files.readString(Paths.get(
- "src/test/resources/expectedValidationResults/InvalidReceptionHandlerParameters.txt"))
- .trim().replaceAll("\\r\\n", "\\\n");
+ String resultString = Files
+ .readString(
+ Paths.get("src/test/resources/expectedValidationResults/InvalidReceptionHandlerParameters.txt"))
+ .trim().replaceAll("\\r\\n", "\\\n");
verifyFailure("DistributionConfigParameters_InvalidReceptionHandlerParameters.json",
- PolicyDistributionException.class,
- resultString);
+ PolicyDistributionException.class, resultString);
}
@Test
public void testDistributionParameterGroup_InvalidDecoderAndForwarderParameters()
- throws PolicyDistributionException, IOException {
+ throws PolicyDistributionException, IOException, CommandLineException {
- String resultString = new String(Files.readString(Paths.get(
- "src/test/resources/expectedValidationResults/InvalidDecoderAndForwarderParameters.txt"))
- .trim().replaceAll("\\r\\n", "\\\n"));
+ String resultString = new String(Files
+ .readString(Paths
+ .get("src/test/resources/expectedValidationResults/InvalidDecoderAndForwarderParameters.txt"))
+ .trim().replaceAll("\\r\\n", "\\\n"));
verifyFailure("DistributionConfigParameters_InvalidDecoderAndForwarderParameters.json",
- PolicyDistributionException.class,
- resultString);
+ PolicyDistributionException.class, resultString);
}
@Test
public void testDistributionParameterGroup_InvalidRestServerParameters()
- throws PolicyDistributionException, IOException {
+ throws PolicyDistributionException, IOException, CommandLineException {
- String resultString = new String(Files.readString(Paths.get(
- "src/test/resources/expectedValidationResults/InvalidRestServerParameters.txt"))
+ String resultString = new String(Files
+ .readString(Paths.get("src/test/resources/expectedValidationResults/InvalidRestServerParameters.txt"))
.trim().replaceAll("\\r\\n", "\\\n"));
verifyFailure("DistributionConfigParameters_InvalidRestServerParameters.json",
- PolicyDistributionException.class,
- resultString);
+ PolicyDistributionException.class, resultString);
}
@Test
- public void testDistributionVersion() throws PolicyDistributionException {
- final String[] distributionConfigParameters =
- { "-v" };
+ public void testDistributionVersion() throws PolicyDistributionException, CommandLineException {
+ final String[] distributionConfigParameters = {"-v"};
final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
final String version = arguments.parse(distributionConfigParameters);
assertTrue(version.startsWith("ONAP Policy Framework Distribution Service"));
}
@Test
- public void testDistributionHelp() throws PolicyDistributionException {
- final String[] distributionConfigParameters =
- { "-h" };
+ public void testDistributionHelp() throws PolicyDistributionException, CommandLineException {
+ final String[] distributionConfigParameters = {"-h"};
final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
final String help = arguments.parse(distributionConfigParameters);
assertTrue(help.startsWith("usage:"));
@@ -249,45 +237,43 @@ public class TestDistributionParameterHandler {
@Test
public void testDistributionInvalidOption() throws PolicyDistributionException {
- final String[] distributionConfigParameters =
- { "-d" };
+ final String[] distributionConfigParameters = {"-d"};
final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
- assertThatThrownBy(() ->
- arguments.parse(distributionConfigParameters)
- ).isInstanceOf(PolicyDistributionException.class)
- .hasMessageContaining("invalid command line arguments specified");
+ assertThatThrownBy(() -> arguments.parse(distributionConfigParameters))
+ .hasMessageContaining("invalid command line arguments specified");
}
@Test
- public void testDistributionParameterGroup_InvalidReceptionHandlerClass() throws PolicyDistributionException {
+ public void testDistributionParameterGroup_InvalidReceptionHandlerClass()
+ throws PolicyDistributionException, CommandLineException {
verifyFailure("DistributionConfigParameters_InvalidReceptionHandlerClass.json",
- PolicyDistributionException.class, "could not find class");
+ PolicyDistributionException.class, "could not find class");
}
@Test
- public void testDistributionParameterGroup_EmptyReceptionHandlerClass() throws PolicyDistributionException {
- verifyFailure("DistributionConfigParameters_EmptyReceptionHandlerClass.json",
- PolicyDistributionException.class, "invalid in JSON file");
+ public void testDistributionParameterGroup_EmptyReceptionHandlerClass()
+ throws PolicyDistributionException, CommandLineException {
+ verifyFailure("DistributionConfigParameters_EmptyReceptionHandlerClass.json", PolicyDistributionException.class,
+ "invalid in JSON file");
}
@Test
public void testDistributionParameterGroup_InvalidDecoderConfigurationClassName()
- throws PolicyDistributionException {
+ throws PolicyDistributionException, CommandLineException {
verifyFailure("DistributionConfigParameters_InvalidDecoderConfigurationClassName.json",
- PolicyDistributionException.class,
- "parameter \"parameterClassName\" value \"\" invalid in JSON file");
+ PolicyDistributionException.class, "parameter \"parameterClassName\" value \"\" invalid in JSON file");
}
@Test
public void testDistributionParameterGroup_UnknownDecoderConfigurationClassName()
- throws PolicyDistributionException {
+ throws PolicyDistributionException, CommandLineException {
verifyFailure("DistributionConfigParameters_UnknownDecoderConfigurationClassName.json",
- PolicyDistributionException.class,
- "parameter \"parameterClassName\" value \"org.onap.policy.Unknown\", could not find class");
+ PolicyDistributionException.class,
+ "parameter \"parameterClassName\" value \"org.onap.policy.Unknown\", could not find class");
}
private <T> void verifyFailure(String fileName, Class<T> clazz, String expectedMessage)
- throws PolicyDistributionException {
+ throws PolicyDistributionException, CommandLineException {
final String[] distributionConfigParameters = {"-c", "parameters/" + fileName};
final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
@@ -296,6 +282,6 @@ public class TestDistributionParameterHandler {
DistributionParameterHandler paramHandler = new DistributionParameterHandler();
assertThatThrownBy(() -> paramHandler.getParameters(arguments)).isInstanceOf(clazz)
- .hasMessageContaining(expectedMessage);
+ .hasMessageContaining(expectedMessage);
}
}
diff --git a/main/src/test/java/org/onap/policy/distribution/main/startstop/TestDistributionCommandLineArguments.java b/main/src/test/java/org/onap/policy/distribution/main/startstop/TestDistributionCommandLineArguments.java
index 7e72b852..0a0e5fa0 100644
--- a/main/src/test/java/org/onap/policy/distribution/main/startstop/TestDistributionCommandLineArguments.java
+++ b/main/src/test/java/org/onap/policy/distribution/main/startstop/TestDistributionCommandLineArguments.java
@@ -20,11 +20,11 @@
package org.onap.policy.distribution.main.startstop;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.Assert.assertThrows;
import org.junit.Test;
-import org.onap.policy.distribution.main.PolicyDistributionException;
import org.onap.policy.distribution.main.PolicyDistributionRuntimeException;
/**
@@ -36,6 +36,12 @@ import org.onap.policy.distribution.main.PolicyDistributionRuntimeException;
public class TestDistributionCommandLineArguments {
@Test
+ public void testDistributionOnlyFileName() {
+ String[] testArgs = {"src/test/resources/parameters/DistributionConfigParameters.json"};
+ assertThrows(PolicyDistributionRuntimeException.class, () -> new DistributionCommandLineArguments(testArgs));
+ }
+
+ @Test
public void testDistributionCommandLineArgumentsException() {
String[] wrongParams = {"arg1", "nothing", "{\"someJson\":1}"};
assertThrows(PolicyDistributionRuntimeException.class, () -> new DistributionCommandLineArguments(wrongParams));
@@ -44,28 +50,32 @@ public class TestDistributionCommandLineArguments {
@Test
public void testValidateFileNameEmpty() {
String[] argsOnlyKeyNoValue = {"-c", ""};
- assertValidate(argsOnlyKeyNoValue, "policy distribution configuration file was not specified as an argument");
+ assertValidate(argsOnlyKeyNoValue, "policy-distribution configuration file was not specified as an argument");
}
@Test
public void testValidateFileNameDoesNotExist() {
String[] fileNameNotExistentArgs = {"-c", "someFileName.json"};
assertValidate(fileNameNotExistentArgs,
- "policy distribution configuration file \"someFileName.json\" does not exist");
+ "policy-distribution configuration file \"someFileName.json\" does not exist");
}
@Test
public void testValidateFileNameIsNotFile() {
String[] folderAsFileNameArgs = {"-c", "src/test/resources/parameters"};
assertValidate(folderAsFileNameArgs,
- "policy distribution configuration file \"src/test/resources/parameters\" is not a normal file");
+ "policy-distribution configuration file \"src/test/resources/parameters\" is not a normal file");
}
- protected void assertValidate(String[] testArgs, String expectedErrorMsg) {
+ @Test
+ public void testDistributionVersion() {
+ String[] testArgs = {"-v"};
DistributionCommandLineArguments sutArgs = new DistributionCommandLineArguments(testArgs);
+ assertThat(sutArgs.version()).startsWith("ONAP Policy Framework Distribution Service");
+ }
- assertThatThrownBy(() -> sutArgs.validate())
- .isInstanceOf(PolicyDistributionException.class)
- .hasMessage(expectedErrorMsg);
+ private void assertValidate(String[] testArgs, String expectedErrorMsg) {
+ DistributionCommandLineArguments sutArgs = new DistributionCommandLineArguments(testArgs);
+ assertThatThrownBy(() -> sutArgs.validate()).hasMessage(expectedErrorMsg);
}
}