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.assertTrue;
25 import static org.junit.Assert.fail;
27 import org.junit.After;
28 import org.junit.Test;
29 import org.onap.policy.apex.service.engine.main.ApexCommandLineArguments;
30 import org.onap.policy.apex.service.parameters.ApexParameterHandler;
31 import org.onap.policy.apex.service.parameters.ApexParameters;
32 import org.onap.policy.common.parameters.ParameterException;
35 * Test for an empty parameter file.
37 * @author Liam Fallon (liam.fallon@ericsson.com)
39 public class ExecutorParameterTests {
41 public void resetRelativeFileRoot() {
42 System.clearProperty("APEX_RELATIVE_FILE_ROOT");
46 public void noParamsTest() {
48 { "-c", "src/test/resources/parameters/serviceExecutorNoParams.json" };
49 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
52 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
53 assertEquals(0, parameters.getEngineServiceParameters().getEngineParameters().getExecutorParameterMap()
55 } catch (final ParameterException e) {
56 fail("This test should not throw any exception: " + e.getMessage());
61 public void badParamsTest() {
63 { "-c", "src/test/resources/parameters/serviceExecutorBadParams.json" };
64 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
67 new ApexParameterHandler().getParameters(arguments);
68 fail("This test should throw an exception");
69 } catch (final ParameterException e) {
70 assertEquals("error reading parameters from "
71 + "\"src/test/resources/parameters/serviceExecutorBadParams.json\"\n"
72 + "(ParameterRuntimeException):value of \"executorParameters:ZOOBY\" entry is not "
73 + "a parameter JSON object", e.getMessage());
78 public void noExecutorParamsTest() {
80 { "-c", "src/test/resources/parameters/serviceExecutorNoExecutorParams.json" };
81 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
84 new ApexParameterHandler().getParameters(arguments);
85 fail("This test should throw an exception");
86 } catch (final ParameterException e) {
87 assertEquals("error reading parameters from "
88 + "\"src/test/resources/parameters/serviceExecutorNoExecutorParams.json\"\n"
89 + "(ParameterRuntimeException):no \"executorParameters\" entry found in parameters,"
90 + " at least one executor parameter entry must be specified", e.getMessage());
95 public void emptyParamsTest() {
97 { "-c", "src/test/resources/parameters/serviceExecutorEmptyParams.json" };
98 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
101 new ApexParameterHandler().getParameters(arguments);
102 fail("This test should throw an exception");
103 } catch (final ParameterException e) {
104 assertEquals("error reading parameters from "
105 + "\"src/test/resources/parameters/serviceExecutorEmptyParams.json\"\n"
106 + "(ParameterRuntimeException):could not find field \"parameterClassName\" "
107 + "in \"executorParameters:ZOOBY\" entry", e.getMessage());
112 public void badPluginParamNameTest() {
113 final String[] args =
114 { "-c", "src/test/resources/parameters/serviceExecutorBadPluginNameParams.json" };
115 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
118 new ApexParameterHandler().getParameters(arguments);
119 fail("This test should throw an exception");
120 } catch (final ParameterException e) {
121 assertEquals("error reading parameters from "
122 + "\"src/test/resources/parameters/serviceExecutorBadPluginNameParams.json\"\n"
123 + "(ParameterRuntimeException):could not find field \"parameterClassName\" "
124 + "in \"executorParameters:ZOOBY\" entry", e.getMessage());
129 public void badPluginParamObjectTest() {
130 final String[] args =
131 { "-c", "src/test/resources/parameters/serviceExecutorBadPluginValueObjectParams.json" };
132 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
135 new ApexParameterHandler().getParameters(arguments);
136 fail("This test should throw an exception");
137 } catch (final ParameterException e) {
138 assertEquals("error reading parameters from "
139 + "\"src/test/resources/parameters/serviceExecutorBadPluginValueObjectParams.json\"\n"
140 + "(ParameterRuntimeException):value for field \"parameterClassName\" "
141 + "of \"executorParameters:LOOBY\" entry is not a plain string", e.getMessage());
146 public void badPluginParamBlankTest() {
147 final String[] args =
148 { "-c", "src/test/resources/parameters/serviceExecutorBadPluginValueBlankParams.json" };
149 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
152 new ApexParameterHandler().getParameters(arguments);
153 fail("This test should throw an exception");
154 } catch (final ParameterException e) {
155 assertEquals("error reading parameters from "
156 + "\"src/test/resources/parameters/serviceExecutorBadPluginValueBlankParams.json\"\n"
157 + "(ParameterRuntimeException):value for field \"parameterClassName\" "
158 + "in \"executorParameters:LOOBY\" entry is not specified or is blank", e.getMessage());
163 public void badPluginParamValueTest() {
164 final String[] args =
165 { "-c", "src/test/resources/parameters/serviceExecutorBadPluginValueParams.json" };
166 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
169 new ApexParameterHandler().getParameters(arguments);
170 fail("This test should throw an exception");
171 } catch (final ParameterException e) {
172 assertEquals("error reading parameters from"
173 + " \"src/test/resources/parameters/serviceExecutorBadPluginValueParams.json\"\n"
174 + "(ParameterRuntimeException):failed to deserialize the parameters "
175 + "for \"executorParameters:LOOBY\" to parameter class \"helloworld\"\n"
176 + "java.lang.ClassNotFoundException: helloworld", e.getMessage());
181 public void goodParametersTest() {
182 final String[] args =
183 { "-c", "src/test/resources/parameters/goodParams.json" };
184 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
187 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
189 assertEquals("MyApexEngine", parameters.getEngineServiceParameters().getName());
190 assertEquals("0.0.1", parameters.getEngineServiceParameters().getVersion());
191 assertEquals(45, parameters.getEngineServiceParameters().getId());
192 assertEquals(19, parameters.getEngineServiceParameters().getInstanceCount());
193 assertEquals(65522, parameters.getEngineServiceParameters().getDeploymentPort());
194 } catch (final ParameterException e) {
195 fail("This test should not throw any exception: " + e.getMessage());
200 public void relativeParametersTest() {
201 final String[] args =
202 { "-rfr", "src/test/resources", "-c", "src/test/resources/parameters/goodParamsRelative.json" };
203 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
206 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
208 assertEquals("MyApexEngine", parameters.getEngineServiceParameters().getName());
209 assertEquals("0.0.1", parameters.getEngineServiceParameters().getVersion());
210 assertEquals(45, parameters.getEngineServiceParameters().getId());
211 assertEquals(19, parameters.getEngineServiceParameters().getInstanceCount());
212 assertEquals(65522, parameters.getEngineServiceParameters().getDeploymentPort());
213 assertTrue(parameters.getEngineServiceParameters().getPolicyModelFileName()
214 .endsWith("policymodels/SmallModel.json"));
215 } catch (final ParameterException e) {
216 fail("This test should not throw any exception: " + e.getMessage());