2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.apex.service.engine.parameters;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.fail;
26 import org.junit.Test;
27 import org.onap.policy.apex.service.engine.main.ApexCommandLineArguments;
28 import org.onap.policy.apex.service.parameters.ApexParameterHandler;
29 import org.onap.policy.apex.service.parameters.ApexParameters;
30 import org.onap.policy.common.parameters.ParameterException;
33 * Test for an empty parameter file.
35 * @author Liam Fallon (liam.fallon@ericsson.com)
37 public class ExecutorParameterTests {
40 public void noParamsTest() {
41 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorNoParams.json"};
42 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
45 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
47 parameters.getEngineServiceParameters().getEngineParameters().getExecutorParameterMap().size());
48 } catch (final ParameterException e) {
49 fail("This test should not throw any exception: " + e.getMessage());
54 public void badParamsTest() {
55 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadParams.json"};
56 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
59 new ApexParameterHandler().getParameters(arguments);
60 fail("This test should throw an exception");
61 } catch (final ParameterException e) {
63 "error reading parameters from \"src/test/resources/parameters/serviceExecutorBadParams.json\"\n"
64 + "(ParameterRuntimeException):value of \"executorParameters:ZOOBY\" entry is not "
65 + "a parameter JSON object",
71 public void noExecutorParamsTest() {
72 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorNoExecutorParams.json"};
73 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
76 new ApexParameterHandler().getParameters(arguments);
77 fail("This test should throw an exception");
78 } catch (final ParameterException e) {
79 assertEquals("error reading parameters from "
80 + "\"src/test/resources/parameters/serviceExecutorNoExecutorParams.json\"\n"
81 + "(ParameterRuntimeException):no \"executorParameters\" entry found in parameters,"
82 + " at least one executor parameter entry must be specified", e.getMessage());
87 public void emptyParamsTest() {
88 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorEmptyParams.json"};
89 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
92 new ApexParameterHandler().getParameters(arguments);
93 fail("This test should throw an exception");
94 } catch (final ParameterException e) {
95 assertEquals("error reading parameters from "
96 + "\"src/test/resources/parameters/serviceExecutorEmptyParams.json\"\n"
97 + "(ParameterRuntimeException):could not find field \"parameterClassName\" "
98 + "in \"executorParameters:ZOOBY\" entry", e.getMessage());
103 public void badPluginParamNameTest() {
104 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginNameParams.json"};
105 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
108 new ApexParameterHandler().getParameters(arguments);
109 fail("This test should throw an exception");
110 } catch (final ParameterException e) {
111 assertEquals("error reading parameters from "
112 + "\"src/test/resources/parameters/serviceExecutorBadPluginNameParams.json\"\n"
113 + "(ParameterRuntimeException):could not find field \"parameterClassName\" "
114 + "in \"executorParameters:ZOOBY\" entry", e.getMessage());
119 public void badPluginParamObjectTest() {
120 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginValueObjectParams.json"};
121 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
124 new ApexParameterHandler().getParameters(arguments);
125 fail("This test should throw an exception");
126 } catch (final ParameterException e) {
127 assertEquals("error reading parameters from "
128 + "\"src/test/resources/parameters/serviceExecutorBadPluginValueObjectParams.json\"\n"
129 + "(ParameterRuntimeException):value for field \"parameterClassName\" "
130 + "of \"executorParameters:LOOBY\" entry is not a plain string", e.getMessage());
135 public void badPluginParamBlankTest() {
136 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginValueBlankParams.json"};
137 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
140 new ApexParameterHandler().getParameters(arguments);
141 fail("This test should throw an exception");
142 } catch (final ParameterException e) {
143 assertEquals("error reading parameters from "
144 + "\"src/test/resources/parameters/serviceExecutorBadPluginValueBlankParams.json\"\n"
145 + "(ParameterRuntimeException):value for field \"parameterClassName\" "
146 + "in \"executorParameters:LOOBY\" entry is not specified or is blank", e.getMessage());
152 public void badPluginParamValueTest() {
153 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginValueParams.json"};
154 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
157 new ApexParameterHandler().getParameters(arguments);
158 fail("This test should throw an exception");
159 } catch (final ParameterException e) {
160 assertEquals("error reading parameters from"
161 + " \"src/test/resources/parameters/serviceExecutorBadPluginValueParams.json\"\n"
162 + "(ParameterRuntimeException):failed to deserialize the parameters "
163 + "for \"executorParameters:LOOBY\" to parameter class \"helloworld\"\n"
164 + "java.lang.ClassNotFoundException: helloworld", e.getMessage());
169 public void goodParametersTest() {
170 final String[] args = {"-c", "src/test/resources/parameters/goodParams.json"};
171 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
174 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
176 assertEquals("MyApexEngine", parameters.getEngineServiceParameters().getName());
177 assertEquals("0.0.1", parameters.getEngineServiceParameters().getVersion());
178 assertEquals(45, parameters.getEngineServiceParameters().getId());
179 assertEquals(19, parameters.getEngineServiceParameters().getInstanceCount());
180 assertEquals(65522, parameters.getEngineServiceParameters().getDeploymentPort());
181 } catch (final ParameterException e) {
182 fail("This test should not throw any exception: " + e.getMessage());