2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * Modifications Copyright (C) 2020 Nordix Foundation.
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.apex.service.engine.parameters;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertTrue;
26 import static org.junit.Assert.fail;
28 import org.junit.After;
29 import org.junit.Test;
30 import org.onap.policy.apex.service.engine.main.ApexCommandLineArguments;
31 import org.onap.policy.apex.service.parameters.ApexParameterHandler;
32 import org.onap.policy.apex.service.parameters.ApexParameters;
33 import org.onap.policy.common.parameters.ParameterException;
36 * Test for an empty parameter file.
38 * @author Liam Fallon (liam.fallon@ericsson.com)
40 public class ExecutorParameterTests {
42 public void resetRelativeFileRoot() {
43 System.clearProperty("APEX_RELATIVE_FILE_ROOT");
47 public void testNoParamsTest() {
48 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorNoParams.json"};
49 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
52 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
54 parameters.getEngineServiceParameters().getEngineParameters().getExecutorParameterMap().size());
55 } catch (final ParameterException e) {
56 fail("This test should not throw any exception: " + e.getMessage());
61 public void testBadParamsTest() {
62 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadParams.json"};
63 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
66 new ApexParameterHandler().getParameters(arguments);
67 fail("This test should throw an exception");
68 } catch (final ParameterException e) {
69 assertEquals("error reading parameters from "
70 + "\"src/test/resources/parameters/serviceExecutorBadParams.json\"\n"
71 + "(ParameterRuntimeException):value of \"executorParameters:ZOOBY\" entry is not "
72 + "a parameter JSON object", e.getMessage());
77 public void testNoExecutorParamsTest() {
78 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorNoExecutorParams.json"};
79 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
82 new ApexParameterHandler().getParameters(arguments);
83 fail("This test should throw an exception");
84 } catch (final ParameterException e) {
85 assertEquals("error reading parameters from "
86 + "\"src/test/resources/parameters/serviceExecutorNoExecutorParams.json\"\n"
87 + "(ParameterRuntimeException):no \"executorParameters\" entry found in parameters,"
88 + " at least one executor parameter entry must be specified", e.getMessage());
93 public void testEmptyParamsTest() {
94 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorEmptyParams.json"};
95 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
98 new ApexParameterHandler().getParameters(arguments);
99 fail("This test should throw an exception");
100 } catch (final ParameterException e) {
101 assertEquals("error reading parameters from "
102 + "\"src/test/resources/parameters/serviceExecutorEmptyParams.json\"\n"
103 + "(ParameterRuntimeException):could not find field \"parameterClassName\" "
104 + "in \"executorParameters:ZOOBY\" entry", e.getMessage());
109 public void testBadPluginParamNameTest() {
110 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginNameParams.json"};
111 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
114 new ApexParameterHandler().getParameters(arguments);
115 fail("This test should throw an exception");
116 } catch (final ParameterException e) {
117 assertEquals("error reading parameters from "
118 + "\"src/test/resources/parameters/serviceExecutorBadPluginNameParams.json\"\n"
119 + "(ParameterRuntimeException):could not find field \"parameterClassName\" "
120 + "in \"executorParameters:ZOOBY\" entry", e.getMessage());
125 public void testBadPluginParamObjectTest() {
126 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginValueObjectParams.json"};
127 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
130 new ApexParameterHandler().getParameters(arguments);
131 fail("This test should throw an exception");
132 } catch (final ParameterException e) {
133 assertEquals("error reading parameters from "
134 + "\"src/test/resources/parameters/serviceExecutorBadPluginValueObjectParams.json\"\n"
135 + "(ParameterRuntimeException):value for field \"parameterClassName\" "
136 + "of \"executorParameters:LOOBY\" entry is not a plain string", e.getMessage());
141 public void testBadPluginParamBlankTest() {
142 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginValueBlankParams.json"};
143 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
146 new ApexParameterHandler().getParameters(arguments);
147 fail("This test should throw an exception");
148 } catch (final ParameterException e) {
149 assertEquals("error reading parameters from "
150 + "\"src/test/resources/parameters/serviceExecutorBadPluginValueBlankParams.json\"\n"
151 + "(ParameterRuntimeException):value for field \"parameterClassName\" "
152 + "in \"executorParameters:LOOBY\" entry is not specified or is blank", e.getMessage());
157 public void testBadPluginParamValueTest() {
158 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginValueParams.json"};
159 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
162 new ApexParameterHandler().getParameters(arguments);
163 fail("This test should throw an exception");
164 } catch (final ParameterException e) {
165 assertEquals("error reading parameters from"
166 + " \"src/test/resources/parameters/serviceExecutorBadPluginValueParams.json\"\n"
167 + "(ParameterRuntimeException):failed to deserialize the parameters "
168 + "for \"executorParameters:LOOBY\" to parameter class \"helloworld\"\n"
169 + "java.lang.ClassNotFoundException: helloworld", e.getMessage());
174 public void testGoodParametersTest() {
175 final String[] args = {"-c", "src/test/resources/parameters/goodParams.json"};
176 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
179 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
181 assertEquals("MyApexEngine", parameters.getEngineServiceParameters().getName());
182 assertEquals("0.0.1", parameters.getEngineServiceParameters().getVersion());
183 assertEquals(45, parameters.getEngineServiceParameters().getId());
184 assertEquals(19, parameters.getEngineServiceParameters().getInstanceCount());
185 assertEquals(65522, parameters.getEngineServiceParameters().getDeploymentPort());
186 } catch (final ParameterException e) {
187 fail("This test should not throw any exception: " + e.getMessage());
192 public void testRelativeParametersTest() {
194 final String[] args = {
196 "src/test/resources",
198 "src/test/resources/parameters/goodParamsRelative.json"
201 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
204 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
206 assertEquals("MyApexEngine", parameters.getEngineServiceParameters().getName());
207 assertEquals("0.0.1", parameters.getEngineServiceParameters().getVersion());
208 assertEquals(45, parameters.getEngineServiceParameters().getId());
209 assertEquals(19, parameters.getEngineServiceParameters().getInstanceCount());
210 assertEquals(65522, parameters.getEngineServiceParameters().getDeploymentPort());
211 assertTrue(parameters.getEngineServiceParameters().getPolicyModelFileName()
212 .endsWith("policymodels/SmallModel.json"));
213 } catch (final ParameterException e) {
214 fail("This test should not throw any exception: " + e.getMessage());