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.ApexParameterException;
29 import org.onap.policy.apex.service.parameters.ApexParameterHandler;
30 import org.onap.policy.apex.service.parameters.ApexParameters;
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 ApexParameterException 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 ApexParameterException e) {
63 "error reading parameters from \"src/test/resources/parameters/serviceExecutorBadParams.json\"\n"
64 + "(ApexParameterRuntimeException):value of \"executorParameters:ZOOBY\" entry is not a parameter JSON object",
70 public void noExecutorParamsTest() {
71 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorNoExecutorParams.json"};
72 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
75 new ApexParameterHandler().getParameters(arguments);
76 fail("This test should throw an exception");
77 } catch (final ApexParameterException e) {
79 "error reading parameters from \"src/test/resources/parameters/serviceExecutorNoExecutorParams.json\"\n"
80 + "(ApexParameterRuntimeException):no \"executorParameters\" entry found in parameters, at least one executor parameter entry must be specified",
86 public void emptyParamsTest() {
87 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorEmptyParams.json"};
88 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
91 new ApexParameterHandler().getParameters(arguments);
92 fail("This test should throw an exception");
93 } catch (final ApexParameterException e) {
95 "error reading parameters from \"src/test/resources/parameters/serviceExecutorEmptyParams.json\"\n"
96 + "(ApexParameterRuntimeException):could not find field \"parameterClassName\" in \"executorParameters:ZOOBY\" entry",
102 public void badPluginParamNameTest() {
103 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginNameParams.json"};
104 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
107 new ApexParameterHandler().getParameters(arguments);
108 fail("This test should throw an exception");
109 } catch (final ApexParameterException e) {
111 "error reading parameters from \"src/test/resources/parameters/serviceExecutorBadPluginNameParams.json\"\n"
112 + "(ApexParameterRuntimeException):could not find field \"parameterClassName\" in \"executorParameters:ZOOBY\" entry",
118 public void badPluginParamObjectTest() {
119 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginValueObjectParams.json"};
120 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
123 new ApexParameterHandler().getParameters(arguments);
124 fail("This test should throw an exception");
125 } catch (final ApexParameterException e) {
127 "error reading parameters from \"src/test/resources/parameters/serviceExecutorBadPluginValueObjectParams.json\"\n"
128 + "(ApexParameterRuntimeException):value for field \"parameterClassName\" in \"executorParameters:LOOBY\" entry is not a plain string",
134 public void badPluginParamBlankTest() {
135 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginValueBlankParams.json"};
136 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
139 new ApexParameterHandler().getParameters(arguments);
140 fail("This test should throw an exception");
141 } catch (final ApexParameterException e) {
143 "error reading parameters from \"src/test/resources/parameters/serviceExecutorBadPluginValueBlankParams.json\"\n"
144 + "(ApexParameterRuntimeException):value for field \"parameterClassName\" in \"executorParameters:LOOBY\" entry is not specified or is blank",
151 public void badPluginParamValueTest() {
152 final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginValueParams.json"};
153 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
156 new ApexParameterHandler().getParameters(arguments);
157 fail("This test should throw an exception");
158 } catch (final ApexParameterException e) {
160 "error reading parameters from \"src/test/resources/parameters/serviceExecutorBadPluginValueParams.json\"\n"
161 + "(ApexParameterRuntimeException):failed to deserialize the parameters for \"executorParameters:LOOBY\" to parameter class \"helloworld\"\n"
162 + "java.lang.ClassNotFoundException: helloworld",
168 public void goodParametersTest() {
169 final String[] args = {"-c", "src/test/resources/parameters/goodParams.json"};
170 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
173 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
175 assertEquals("MyApexEngine", parameters.getEngineServiceParameters().getName());
176 assertEquals("0.0.1", parameters.getEngineServiceParameters().getVersion());
177 assertEquals(45, parameters.getEngineServiceParameters().getId());
178 assertEquals(19, parameters.getEngineServiceParameters().getInstanceCount());
179 assertEquals(65522, parameters.getEngineServiceParameters().getDeploymentPort());
180 } catch (final ApexParameterException e) {
181 fail("This test should not throw any exception: " + e.getMessage());