/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2018 Ericsson. All rights reserved.
+ * Modifications Copyright (C) 2020 Nordix Foundation
+ * Modifications Copyright (C) 2021 AT&T Intellectual Property. 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.
package org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
import org.apache.commons.cli.ParseException;
import org.junit.Test;
public class EventGeneratorParametersHandlerTest {
@Test
- public void testEventGeneratorParameterhandler() {
+ public void testEventGeneratorParameterhandler() throws ParseException {
EventGeneratorParameterHandler handler = new EventGeneratorParameterHandler();
assertNotNull(handler);
- try {
- String[] args =
- { "-h" };
- EventGeneratorParameters parameters = handler.parse(args);
- assertNull(parameters);
- assertEquals("usage: EventGenerator [options...]",
- handler.getHelp(EventGenerator.class.getSimpleName()).substring(0, 34));
- } catch (ParseException pe) {
- fail("test should not throw an exception");
- }
-
- try {
- String[] args =
- {};
- EventGeneratorParameters parameters = handler.parse(args);
- assertEquals("localhost", parameters.getHost());
- assertEquals(32801, parameters.getPort());
- } catch (ParseException pe) {
- fail("test should not throw an exception");
- }
-
- try {
- String[] args =
- { "-H", "MyHost" };
- EventGeneratorParameters parameters = handler.parse(args);
- assertEquals("MyHost", parameters.getHost());
- } catch (ParseException pe) {
- fail("test should not throw an exception");
- }
-
- try {
- String[] args =
- { "-p", "12345" };
- EventGeneratorParameters parameters = handler.parse(args);
- assertEquals(12345, parameters.getPort());
- } catch (ParseException pe) {
- fail("test should not throw an exception");
- }
-
- try {
- String[] args =
- { "-H", "MyHost", "-p", "12345" };
- EventGeneratorParameters parameters = handler.parse(args);
- assertEquals("MyHost", parameters.getHost());
- assertEquals(12345, parameters.getPort());
- } catch (ParseException pe) {
- fail("test should not throw an exception");
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/Valid.json" };
- EventGeneratorParameters parameters = handler.parse(args);
- assertEquals("ValidPars", parameters.getName());
- assertEquals("FileHost", parameters.getHost());
- assertEquals(54321, parameters.getPort());
- } catch (ParseException pe) {
- fail("test should not throw an exception");
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/Default.json" };
- EventGeneratorParameters parameters = handler.parse(args);
- assertEquals("localhost", parameters.getHost());
- assertEquals(32801, parameters.getPort());
- } catch (ParseException pe) {
- fail("test should not throw an exception");
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/Default.json", "-bc", "100" };
- EventGeneratorParameters parameters = handler.parse(args);
- assertEquals(100, parameters.getBatchCount());
- } catch (ParseException pe) {
- fail("test should not throw an exception");
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/Default.json", "-bc", "-1" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("specified parameters are not valid: parameter group \"EventGeneratorParameters\" "
- + "type \"org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator."
- + "EventGeneratorParameters\" INVALID, parameter group has status INVALID\n"
- + " field \"batchCount\" type \"int\" value \"-1\" INVALID, "
- + "batchCount must be an integer with a value of zero or more, "
- + "zero means generate batches forever\n", pe.getMessage());
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/Default.json", "-bs", "12345" };
- EventGeneratorParameters parameters = handler.parse(args);
- assertEquals(12345, parameters.getBatchSize());
- } catch (ParseException pe) {
- fail("test should not throw an exception");
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/Default.json", "-bs", "0" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("specified parameters are not valid: parameter group \"EventGeneratorParameters\" "
- + "type \"org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator."
- + "EventGeneratorParameters\" INVALID, parameter group has status INVALID\n"
- + " field \"batchSize\" type \"int\" value \"0\" INVALID, "
- + "batchSize must be an integer greater than zero\n", pe.getMessage());
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/Default.json", "-bd", "1000" };
- EventGeneratorParameters parameters = handler.parse(args);
- assertEquals(1000, parameters.getDelayBetweenBatches());
- } catch (ParseException pe) {
- fail("test should not throw an exception");
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/Default.json", "-bd", "-1" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("specified parameters are not valid: parameter group \"EventGeneratorParameters\" "
- + "type \"org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator."
- + "EventGeneratorParameters\" INVALID, parameter group has status INVALID\n"
- + " field \"batchSize\" type \"int\" value \"1\" INVALID, "
- + "batchSize must be an integer with a value of zero or more\n", pe.getMessage());
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/Default.json", "-o", "Zooby" };
- EventGeneratorParameters parameters = handler.parse(args);
- assertEquals("Zooby", parameters.getOutFile());
- } catch (ParseException pe) {
- fail("test should not throw an exception");
- }
-
- try {
- String[] args =
- { "-z" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("Unrecognized option: -z", pe.getMessage());
- }
-
- try {
- String[] args =
- { "-H" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("Missing argument for option: H", pe.getMessage());
- }
-
- try {
- String[] args =
- { "-p" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("Missing argument for option: p", pe.getMessage());
- }
-
- try {
- String[] args =
- { "-p", "12345", "-z" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("Unrecognized option: -z", pe.getMessage());
- }
-
- try {
- String[] args =
- { "-p", "12345", "somethingElse" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("too many command line arguments specified : [somethingElse]", pe.getMessage());
- }
-
- try {
- String[] args =
- { "-c" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("Missing argument for option: c", pe.getMessage());
- }
-
- try {
- String[] args =
- { "-H", "MyHost", "-c", "src/test/resources/parameters/unit/Valid.json" };
- EventGeneratorParameters pars = handler.parse(args);
- assertEquals("MyHost", pars.getHost());
-
- } catch (ParseException pe) {
- fail("test should not throw an exception");
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/NonExistant.json" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertTrue(pe.getMessage().startsWith("Could not read parameters from configuration file "));
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/BadHost.json" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("Error parsing JSON parameters from configuration file "
+ String[] args = { "-h" };
+ EventGeneratorParameters parameters = handler.parse(args);
+ assertNull(parameters);
+ assertEquals("usage: EventGenerator [options...]",
+ handler.getHelp(EventGenerator.class.getSimpleName()).substring(0, 34));
+
+ args = new String[] {};
+ parameters = handler.parse(args);
+ assertEquals("localhost", parameters.getHost());
+ assertEquals(32801, parameters.getPort());
+
+ args = new String[] { "-H", "MyHost" };
+ parameters = handler.parse(args);
+ assertEquals("MyHost", parameters.getHost());
+
+ args = new String[] { "-p", "12345" };
+ parameters = handler.parse(args);
+ assertEquals(12345, parameters.getPort());
+
+
+ args = new String[] { "-H", "MyHost", "-p", "12345" };
+ parameters = handler.parse(args);
+ assertEquals("MyHost", parameters.getHost());
+ assertEquals(12345, parameters.getPort());
+
+ args = new String[] { "-c", "src/test/resources/parameters/unit/Valid.json" };
+ parameters = handler.parse(args);
+ assertEquals("ValidPars", parameters.getName());
+ assertEquals("FileHost", parameters.getHost());
+ assertEquals(54321, parameters.getPort());
+
+ args = new String[] { "-c", "src/test/resources/parameters/unit/Default.json" };
+ parameters = handler.parse(args);
+ assertEquals("localhost", parameters.getHost());
+ assertEquals(32801, parameters.getPort());
+
+ args = new String[] { "-c", "src/test/resources/parameters/unit/Default.json", "-bc", "100" };
+ parameters = handler.parse(args);
+ assertEquals(100, parameters.getBatchCount());
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-c", "src/test/resources/parameters/unit/Default.json", "-bc", "-1" };
+ handler.parse(arguments);
+ }).hasMessageContaining("specified parameters are not valid", "EventGeneratorParameters",
+ "\"batchCount\" value \"-1\" INVALID, is below the minimum");
+ args = new String[] { "-c", "src/test/resources/parameters/unit/Default.json", "-bs", "12345" };
+ parameters = handler.parse(args);
+ assertEquals(12345, parameters.getBatchSize());
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-c", "src/test/resources/parameters/unit/Default.json", "-bs", "0" };
+ handler.parse(arguments);
+ }).hasMessageContaining("specified parameters are not valid", "EventGeneratorParameters",
+ "\"batchSize\" value \"0\" INVALID, is below the minimum");
+ args = new String[] { "-c", "src/test/resources/parameters/unit/Default.json", "-bd", "1000" };
+ parameters = handler.parse(args);
+ assertEquals(1000, parameters.getDelayBetweenBatches());
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-c", "src/test/resources/parameters/unit/Default.json", "-bd", "-1" };
+ handler.parse(arguments);
+ }).hasMessageContaining("specified parameters are not valid", "EventGeneratorParameters",
+ "\"batchSize\" value \"1\" INVALID, is below the minimum");
+
+ args = new String[] { "-c", "src/test/resources/parameters/unit/Default.json", "-o", "Zooby" };
+ parameters = handler.parse(args);
+ assertEquals("Zooby", parameters.getOutFile());
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-z" };
+ handler.parse(arguments);
+ }).hasMessage("Unrecognized option: -z");
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-H" };
+ handler.parse(arguments);
+ }).hasMessage("Missing argument for option: H");
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-p" };
+ handler.parse(arguments);
+ }).hasMessage("Missing argument for option: p");
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-p", "12345", "-z" };
+ handler.parse(arguments);
+ }).hasMessage("Unrecognized option: -z");
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-p", "12345", "somethingElse" };
+ handler.parse(arguments);
+ }).hasMessage("too many command line arguments specified : [somethingElse]");
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-c" };
+ handler.parse(arguments);
+ }).hasMessage("Missing argument for option: c");
+
+ args = new String[] { "-H", "MyHost", "-c", "src/test/resources/parameters/unit/Valid.json" };
+ parameters = handler.parse(args);
+ assertEquals("MyHost", parameters.getHost());
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-c", "src/test/resources/parameters/unit/NonExistant.json" };
+ handler.parse(arguments);
+ }).hasMessageStartingWith("Could not read parameters from configuration file ");
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-c", "src/test/resources/parameters/unit/BadHost.json" };
+ handler.parse(arguments);
+ }).hasMessage("Error parsing JSON parameters from configuration file "
+ "\"src/test/resources/parameters/unit/BadHost.json\": "
+ "com.google.gson.stream.MalformedJsonException: "
- + "Unexpected value at line 3 column 14 path $.host", pe.getMessage());
- }
+ + "Unexpected value at line 3 column 14 path $.host");
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/BadPort.json" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("Error parsing JSON parameters from configuration file "
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-c", "src/test/resources/parameters/unit/BadPort.json" };
+ handler.parse(arguments);
+ }).hasMessage("Error parsing JSON parameters from configuration file "
+ "\"src/test/resources/parameters/unit/BadPort.json\": "
+ "java.lang.IllegalStateException: Expected an int "
- + "but was BOOLEAN at line 4 column 18 path $.port", pe.getMessage());
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/Empty.json" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("No parameters found in configuration file "
- + "\"src/test/resources/parameters/unit/Empty.json\"", pe.getMessage());
- }
-
- try {
- String[] args =
- { "-c", "src/test/resources/parameters/unit/NullHost.json" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("specified parameters are not valid: parameter group \"ValidPars\" "
- + "type \"org.onap.policy.apex.testsuites.performance."
- + "benchmark.eventgenerator.EventGeneratorParameters\" INVALID, "
- + "parameter group has status INVALID\n" + " field \"host\" type \"java.lang.String\" "
- + "value \"null\" INVALID, host must be a non-blank string\n", pe.getMessage());
- }
-
- try {
- String[] args =
- { "-p", "1023" };
- handler.parse(args);
- fail("test should throw an exception");
- } catch (ParseException pe) {
- assertEquals("specified parameters are not valid: parameter group \""
- + "EventGeneratorParameters\" type \"org.onap.policy.apex.testsuites.performance.benchmark."
- + "eventgenerator.EventGeneratorParameters\" INVALID, parameter group has status INVALID\n"
- + " field \"port\" type \"int\" value \"1023\" INVALID, "
- + "port must be an integer between 1024 and 65535 inclusive\n" + "", pe.getMessage());
- }
+ + "but was BOOLEAN at line 4 column 18 path $.port");
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-c", "src/test/resources/parameters/unit/Empty.json" };
+ handler.parse(arguments);
+ }).hasMessage("No parameters found in configuration file "
+ + "\"src/test/resources/parameters/unit/Empty.json\"");
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-c", "src/test/resources/parameters/unit/NullHost.json" };
+ handler.parse(arguments);
+ }).hasMessageContaining("specified parameters are not valid", "EventGeneratorParameters",
+ "\"host\" value \"null\" INVALID, is null");
+
+ assertThatThrownBy(() -> {
+ String[] arguments = new String[] { "-p", "1023" };
+ handler.parse(arguments);
+ }).hasMessageContaining("specified parameters are not valid", "EventGeneratorParameters",
+ "\"port\" value \"1023\" INVALID, is below the minimum");
}
}