diff options
7 files changed, 61 insertions, 433 deletions
diff --git a/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/startstop/DmaapSimCommandLineArguments.java b/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/startstop/DmaapSimCommandLineArguments.java index 724c3dc35..8968a2a8e 100644 --- a/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/startstop/DmaapSimCommandLineArguments.java +++ b/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/startstop/DmaapSimCommandLineArguments.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2021 Nordix Foundation. * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,66 +21,21 @@ package org.onap.policy.models.sim.dmaap.startstop; -import java.io.File; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.net.URL; -import java.util.Arrays; -import lombok.Getter; -import lombok.Setter; -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.apache.commons.lang3.StringUtils; -import org.onap.policy.common.utils.resources.ResourceUtils; -import org.onap.policy.models.sim.dmaap.DmaapSimException; +import org.onap.policy.common.utils.cmd.CommandLineArgumentsHandler; +import org.onap.policy.common.utils.cmd.CommandLineException; import org.onap.policy.models.sim.dmaap.DmaapSimRuntimeException; - /** * This class reads and handles command line parameters for the DMaaP simulator service. */ -public class DmaapSimCommandLineArguments { - private static final String FILE_MESSAGE_PREAMBLE = " file \""; - private static final int HELP_LINE_LENGTH = 120; - - private final Options options; - - @Getter - @Setter - private String configurationFilePath = null; +public class DmaapSimCommandLineArguments extends CommandLineArgumentsHandler { + private static final String DMAAP_SIM = "DMaaP simulator"; /** * Construct the options for the CLI editor. */ public DmaapSimCommandLineArguments() { - //@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 DMaaP simulator") - .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 DMaaP simulator parameters") - .hasArg() - .argName("CONFIG_FILE") - .required(false) - .type(String.class) - .build()); - //@formatter:on + super(Main.class.getName(), DMAAP_SIM); } /** @@ -89,135 +44,12 @@ public class DmaapSimCommandLineArguments { * @param args The command line arguments */ public DmaapSimCommandLineArguments(final String[] args) { - // Set up the options with the default constructor this(); - // Parse the arguments try { parse(args); - } catch (final DmaapSimException e) { + } catch (final CommandLineException e) { throw new DmaapSimRuntimeException("parse error on DMaaP simulator 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 DmaapSimException on command argument errors - */ - public String parse(final String[] args) throws DmaapSimException { - // Clear all our arguments - setConfigurationFilePath(null); - - CommandLine commandLine = null; - try { - commandLine = new DefaultParser().parse(options, args); - } catch (final ParseException e) { - throw new DmaapSimException("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 DmaapSimException("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 DmaapSimException on command argument validation errors - */ - public void validate() throws DmaapSimException { - validateFileExists("DMaaP simulator configuration", configurationFilePath); - } - - /** - * Print version information for DMaaP simulator. - * - * @return the version string - */ - public String version() { - return ResourceUtils.getResourceAsString("version.txt"); - } - - /** - * Print help information for DMaaP simulator. - * - * @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 full expanded configuration file path. - * - * @return the configuration file path - */ - public String getFullConfigurationFilePath() { - return ResourceUtils.getFilePath4Resource(getConfigurationFilePath()); - } - - /** - * Check set configuration file path. - * - * @return true, if check set configuration file path - */ - public boolean checkSetConfigurationFilePath() { - return configurationFilePath != null && configurationFilePath.length() > 0; - } - - /** - * Validate file exists. - * - * @param fileTag the file tag - * @param fileName the file name - * @throws DmaapSimException on the file name passed as a parameter - */ - private void validateFileExists(final String fileTag, final String fileName) throws DmaapSimException { - if (StringUtils.isBlank(fileName)) { - throw new DmaapSimException(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 DmaapSimException(fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" does not exist"); - } - - final File theFile = new File(fileUrl.getPath()); - if (!theFile.exists()) { - throw new DmaapSimException(fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" does not exist"); - } - } } diff --git a/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/startstop/Main.java b/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/startstop/Main.java index a7214a073..2c6c54063 100644 --- a/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/startstop/Main.java +++ b/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/startstop/Main.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2021 Nordix Foundation. * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,7 +22,9 @@ package org.onap.policy.models.sim.dmaap.startstop; import java.util.Arrays; +import org.onap.policy.common.utils.cmd.CommandLineException; import org.onap.policy.models.sim.dmaap.DmaapSimException; +import org.onap.policy.models.sim.dmaap.DmaapSimRuntimeException; import org.onap.policy.models.sim.dmaap.parameters.DmaapSimParameterGroup; import org.onap.policy.models.sim.dmaap.parameters.DmaapSimParameterHandler; import org.slf4j.Logger; @@ -58,7 +60,7 @@ public class Main { } // Validate that the arguments are sane arguments.validate(); - } catch (final DmaapSimException e) { + } catch (final DmaapSimRuntimeException | CommandLineException e) { LOGGER.error("start of DMaaP simulator service failed", e); return; } diff --git a/models-sim/models-sim-dmaap/src/test/java/org/onap/policy/sim/dmaap/parameters/DmaapSimParameterHandlerTest.java b/models-sim/models-sim-dmaap/src/test/java/org/onap/policy/sim/dmaap/parameters/DmaapSimParameterHandlerTest.java index 8f053d219..ca6712388 100644 --- a/models-sim/models-sim-dmaap/src/test/java/org/onap/policy/sim/dmaap/parameters/DmaapSimParameterHandlerTest.java +++ b/models-sim/models-sim-dmaap/src/test/java/org/onap/policy/sim/dmaap/parameters/DmaapSimParameterHandlerTest.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019 AT&T Intellectual Property. 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 @@ import static org.junit.Assert.assertNotNull; import org.junit.Before; import org.junit.Test; +import org.onap.policy.common.utils.cmd.CommandLineException; import org.onap.policy.models.sim.dmaap.DmaapSimException; import org.onap.policy.models.sim.dmaap.parameters.DmaapSimParameterGroup; import org.onap.policy.models.sim.dmaap.parameters.DmaapSimParameterHandler; @@ -41,7 +43,7 @@ public class DmaapSimParameterHandlerTest { } @Test - public void testGetParameters() throws DmaapSimException { + public void testGetParameters() throws DmaapSimException, CommandLineException { final DmaapSimCommandLineArguments args = new DmaapSimCommandLineArguments(); args.parse(new String[] {"-c", RESOURCE_DIR + "NormalParameters.json"}); @@ -66,5 +68,4 @@ public class DmaapSimParameterHandlerTest { assertThatThrownBy(() -> handler.getParameters(args)).isInstanceOf(DmaapSimException.class) .hasMessageContaining("validation error"); } - } diff --git a/models-sim/models-sim-dmaap/src/test/java/org/onap/policy/sim/dmaap/startstop/MainTest.java b/models-sim/models-sim-dmaap/src/test/java/org/onap/policy/sim/dmaap/startstop/MainTest.java index cceeaf5af..1d6c68a49 100644 --- a/models-sim/models-sim-dmaap/src/test/java/org/onap/policy/sim/dmaap/startstop/MainTest.java +++ b/models-sim/models-sim-dmaap/src/test/java/org/onap/policy/sim/dmaap/startstop/MainTest.java @@ -1,6 +1,7 @@ /* * ============LICENSE_START======================================================= - * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. + * Modifications Copyright (C) 2019-2020 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. @@ -20,6 +21,7 @@ package org.onap.policy.sim.dmaap.startstop; +import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; @@ -30,6 +32,7 @@ import org.junit.Before; import org.junit.Test; import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; import org.onap.policy.models.sim.dmaap.rest.CommonRestServer; +import org.onap.policy.models.sim.dmaap.startstop.DmaapSimCommandLineArguments; import org.onap.policy.models.sim.dmaap.startstop.Main; import org.onap.policy.sim.dmaap.parameters.CommonTestData; @@ -102,4 +105,11 @@ public class MainTest extends CommonRestServer { main = new Main(NormalParameters); assertNull(main.getParameters()); } + + @Test + public void testDmaapSimVersion() { + String[] testArgs = {"-v"}; + DmaapSimCommandLineArguments sutArgs = new DmaapSimCommandLineArguments(testArgs); + assertThat(sutArgs.version()).startsWith("ONAP DMaaP simulator Service"); + } } diff --git a/models-sim/policy-models-sim-pdp/src/main/java/org/onap/policy/models/sim/pdp/PdpSimulatorCommandLineArguments.java b/models-sim/policy-models-sim-pdp/src/main/java/org/onap/policy/models/sim/pdp/PdpSimulatorCommandLineArguments.java index 327f76277..662d7aa05 100644 --- a/models-sim/policy-models-sim-pdp/src/main/java/org/onap/policy/models/sim/pdp/PdpSimulatorCommandLineArguments.java +++ b/models-sim/policy-models-sim-pdp/src/main/java/org/onap/policy/models/sim/pdp/PdpSimulatorCommandLineArguments.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2021 Nordix Foundation. * Modifications Copyright (C) 2019, 2020 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,19 +21,9 @@ package org.onap.policy.models.sim.pdp; -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.models.sim.pdp.exception.PdpSimulatorException; +import org.onap.policy.common.utils.cmd.CommandLineArgumentsHandler; +import org.onap.policy.common.utils.cmd.CommandLineException; import org.onap.policy.models.sim.pdp.exception.PdpSimulatorRunTimeException; /** @@ -41,52 +31,14 @@ import org.onap.policy.models.sim.pdp.exception.PdpSimulatorRunTimeException; * * @author Ajith Sreekumar (ajith.sreekumar@est.tech) */ -public class PdpSimulatorCommandLineArguments { - - private static final String FILE_MESSAGE_PREAMBLE = " file \""; - private static final int HELP_LINE_LENGTH = 120; - - private final Options options; - private String configurationFilePath = null; - private String propertyFilePath = null; +public class PdpSimulatorCommandLineArguments extends CommandLineArgumentsHandler { + private static final String PDP_SIM = "pdp simulator"; /** * Construct the options for the CLI editor. */ public PdpSimulatorCommandLineArguments() { - //@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 pdp simulator") - .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 pdp simulator parameters") - .hasArg() - .argName("CONFIG_FILE") - .required(false) - .type(String.class) - .build()); - options.addOption(Option.builder("p") - .longOpt("property-file") - .desc("the full path to the topic property file to use, " - + "the property file contains the pdp simulator topic properties") - .hasArg() - .argName("PROP_FILE") - .required(false) - .type(String.class) - .build()); - //@formatter:on + super(PdpSimulatorMain.class.getName(), PDP_SIM, pdpSimPropertyFileOption()); } /** @@ -95,203 +47,23 @@ public class PdpSimulatorCommandLineArguments { * @param args The command line arguments */ public PdpSimulatorCommandLineArguments(final String[] args) { - // Set up the options with the default constructor this(); - // Parse the arguments try { parse(args); - } catch (final PdpSimulatorException e) { + } catch (final CommandLineException e) { throw new PdpSimulatorRunTimeException("parse error on pdp simulator 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 PdpSimulatorException on command argument errors + * Build the property-file option for PDP Sim. + * @return property-file option */ - public String parse(final String[] args) throws PdpSimulatorException { - // Clear all our arguments - setConfigurationFilePath(null); - setPropertyFilePath(null); - - CommandLine commandLine = null; - try { - commandLine = new DefaultParser().parse(options, args); - } catch (final ParseException e) { - throw new PdpSimulatorException("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 PdpSimulatorException("too many command line arguments specified : " + Arrays.toString(args)); - } - - if (remainingArgs.length == 1) { - configurationFilePath = remainingArgs[0]; - } - - if (commandLine.hasOption('h')) { - return help(PdpSimulatorMain.class.getName()); - } - - if (commandLine.hasOption('v')) { - return version(); - } - - if (commandLine.hasOption('c')) { - setConfigurationFilePath(commandLine.getOptionValue('c')); - } - - if (commandLine.hasOption('p')) { - setPropertyFilePath(commandLine.getOptionValue('p')); - } - - return null; - } - - /** - * Validate the command line options. - * - * @throws PdpSimulatorException on command argument validation errors - */ - public void validate() throws PdpSimulatorException { - validateReadableFile("pdp simulator configuration", configurationFilePath); - } - - /** - * Print version information for pdp simulator. - * - * @return the version string - */ - public String version() { - return ResourceUtils.getResourceAsString("src/main/resources/version.txt"); - } - - /** - * Print help information for pdp simulator. - * - * @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; - } - - /** - * Gets the property file path. - * - * @return the property file path - */ - public String getPropertyFilePath() { - return propertyFilePath; - } - - /** - * Gets the full expanded property file path. - * - * @return the property file path - */ - public String getFullPropertyFilePath() { - return ResourceUtils.getFilePath4Resource(getPropertyFilePath()); - } - - /** - * Sets the property file path. - * - * @param propertyFilePath the property file path - */ - public void setPropertyFilePath(final String propertyFilePath) { - this.propertyFilePath = propertyFilePath; - - } - - /** - * Check set property file path. - * - * @return true, if check set property file path - */ - public boolean checkSetPropertyFilePath() { - return propertyFilePath != null && propertyFilePath.length() > 0; - } - - /** - * Validate readable file. - * - * @param fileTag the file tag - * @param fileName the file name - * @throws PdpSimulatorException on the file name passed as a parameter - */ - private void validateReadableFile(final String fileTag, final String fileName) throws PdpSimulatorException { - if (fileName == null || fileName.length() == 0) { - throw new PdpSimulatorException(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 PdpSimulatorException(fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" does not exist"); - } - - final File theFile = new File(fileUrl.getPath()); - if (!theFile.exists()) { - throw new PdpSimulatorException(fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" does not exist"); - } - if (!theFile.isFile()) { - throw new PdpSimulatorException(fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" is not a normal file"); - } - if (!theFile.canRead()) { - throw new PdpSimulatorException(fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" is ureadable"); - } + private static Option pdpSimPropertyFileOption() { + return Option.builder("p").longOpt("property-file") + .desc("the full path to the topic property file to use, " + + "the property file contains the pdp simulator topic properties") + .hasArg().argName("PROP_FILE").required(false).type(String.class).build(); } - } diff --git a/models-sim/policy-models-sim-pdp/src/main/java/org/onap/policy/models/sim/pdp/PdpSimulatorMain.java b/models-sim/policy-models-sim-pdp/src/main/java/org/onap/policy/models/sim/pdp/PdpSimulatorMain.java index 050786902..0d92aee8d 100644 --- a/models-sim/policy-models-sim-pdp/src/main/java/org/onap/policy/models/sim/pdp/PdpSimulatorMain.java +++ b/models-sim/policy-models-sim-pdp/src/main/java/org/onap/policy/models/sim/pdp/PdpSimulatorMain.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2021 Nordix Foundation. * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,8 +22,10 @@ package org.onap.policy.models.sim.pdp; import java.util.Arrays; +import org.onap.policy.common.utils.cmd.CommandLineException; import org.onap.policy.common.utils.services.Registry; import org.onap.policy.models.sim.pdp.exception.PdpSimulatorException; +import org.onap.policy.models.sim.pdp.exception.PdpSimulatorRunTimeException; import org.onap.policy.models.sim.pdp.parameters.PdpSimulatorParameterGroup; import org.onap.policy.models.sim.pdp.parameters.PdpSimulatorParameterHandler; import org.slf4j.Logger; @@ -64,7 +66,7 @@ public class PdpSimulatorMain { } // Validate that the arguments are sane arguments.validate(); - } catch (final PdpSimulatorException e) { + } catch (final PdpSimulatorRunTimeException | CommandLineException e) { LOGGER.error(PDP_SIMULATOR_FAIL_MSG, e); return; } diff --git a/models-sim/policy-models-sim-pdp/src/test/java/org/onap/policy/models/sim/pdp/parameters/TestPdpSimulatorParameterHandler.java b/models-sim/policy-models-sim-pdp/src/test/java/org/onap/policy/models/sim/pdp/parameters/TestPdpSimulatorParameterHandler.java index e7d41a545..3ac99f407 100644 --- a/models-sim/policy-models-sim-pdp/src/test/java/org/onap/policy/models/sim/pdp/parameters/TestPdpSimulatorParameterHandler.java +++ b/models-sim/policy-models-sim-pdp/src/test/java/org/onap/policy/models/sim/pdp/parameters/TestPdpSimulatorParameterHandler.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2021 Nordix Foundation. * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -28,6 +28,7 @@ import static org.junit.Assert.fail; import java.io.FileNotFoundException; import org.junit.Test; +import org.onap.policy.common.utils.cmd.CommandLineException; import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.models.sim.pdp.PdpSimulatorCommandLineArguments; import org.onap.policy.models.sim.pdp.exception.PdpSimulatorException; @@ -40,7 +41,7 @@ import org.onap.policy.models.sim.pdp.exception.PdpSimulatorException; public class TestPdpSimulatorParameterHandler { @Test - public void testParameterHandlerNoParameterFile() throws PdpSimulatorException { + public void testParameterHandlerNoParameterFile() throws PdpSimulatorException, CommandLineException { final String[] emptyArgumentString = { "-c", "src/test/resources/NoParametersFile.json" }; final PdpSimulatorCommandLineArguments emptyArguments = new PdpSimulatorCommandLineArguments(); @@ -56,7 +57,7 @@ public class TestPdpSimulatorParameterHandler { } @Test - public void testParameterHandlerEmptyParameters() throws PdpSimulatorException { + public void testParameterHandlerEmptyParameters() throws PdpSimulatorException, CommandLineException { final String[] noArgumentString = { "-c", "src/test/resources/NoParameters.json" }; final PdpSimulatorCommandLineArguments noArguments = new PdpSimulatorCommandLineArguments(); @@ -67,7 +68,7 @@ public class TestPdpSimulatorParameterHandler { } @Test - public void testParameterHandlerInvalidParameters() throws PdpSimulatorException { + public void testParameterHandlerInvalidParameters() throws PdpSimulatorException, CommandLineException { final String[] invalidArgumentString = { "-c", "src/test/resources/InvalidParameters.json" }; final PdpSimulatorCommandLineArguments invalidArguments = new PdpSimulatorCommandLineArguments(); @@ -79,7 +80,7 @@ public class TestPdpSimulatorParameterHandler { } @Test - public void testParameterHandlerNoParameters() throws PdpSimulatorException { + public void testParameterHandlerNoParameters() throws PdpSimulatorException, CommandLineException { final String[] noArgumentString = { "-c", "src/test/resources/EmptyConfigParameters.json" }; final PdpSimulatorCommandLineArguments noArguments = new PdpSimulatorCommandLineArguments(); @@ -90,7 +91,7 @@ public class TestPdpSimulatorParameterHandler { } @Test - public void testPdpSimulatorParameterGroup() throws PdpSimulatorException { + public void testPdpSimulatorParameterGroup() throws PdpSimulatorException, CommandLineException { final String[] pdpSimulatorConfigParameters = { "-c", "src/test/resources/PdpSimulatorConfigParameters.json" }; final PdpSimulatorCommandLineArguments arguments = new PdpSimulatorCommandLineArguments(); @@ -102,7 +103,7 @@ public class TestPdpSimulatorParameterHandler { } @Test - public void testPdpSimulatorParameterGroup_InvalidName() throws PdpSimulatorException { + public void testPdpSimulatorParameterGroup_InvalidName() throws PdpSimulatorException, CommandLineException { final String[] pdpSimulatorConfigParameters = {"-c", "src/test/resources/PdpSimulatorConfigParameters_InvalidName.json"}; @@ -114,7 +115,7 @@ public class TestPdpSimulatorParameterHandler { } @Test - public void testPdpSimulatorVersion() throws PdpSimulatorException { + public void testPdpSimulatorVersion() throws PdpSimulatorException, CommandLineException { final String[] pdpSimulatorConfigParameters = { "-v" }; final PdpSimulatorCommandLineArguments arguments = new PdpSimulatorCommandLineArguments(); final String version = arguments.parse(pdpSimulatorConfigParameters); @@ -122,7 +123,7 @@ public class TestPdpSimulatorParameterHandler { } @Test - public void testPdpSimulatorHelp() throws PdpSimulatorException { + public void testPdpSimulatorHelp() throws PdpSimulatorException, CommandLineException { final String[] pdpSimulatorConfigParameters = { "-h" }; final PdpSimulatorCommandLineArguments arguments = new PdpSimulatorCommandLineArguments(); final String help = arguments.parse(pdpSimulatorConfigParameters); @@ -137,4 +138,12 @@ public class TestPdpSimulatorParameterHandler { assertThatThrownBy(() -> arguments.parse(pdpSimulatorConfigParameters)) .hasMessageStartingWith("invalid command line arguments specified"); } + + @Test + public void testPdpSimulatorProperty() throws PdpSimulatorException, CommandLineException { + final String[] pdpSimulatorConfigParameters = { "-p", "dummyProperties.json" }; + final PdpSimulatorCommandLineArguments arguments = new PdpSimulatorCommandLineArguments(); + arguments.parse(pdpSimulatorConfigParameters); + assertTrue(arguments.checkSetPropertyFilePath()); + } } |