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.assertj.core.api.Assertions.assertThatThrownBy;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.fail;
28 import org.junit.Test;
29 import org.onap.policy.apex.service.engine.main.ApexCommandLineArguments;
30 import org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperDistributorParameters;
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 ContextParameterTests {
43 public void testNoParamsTest() {
44 final String[] args = {"-c", "src/test/resources/parameters/serviceContextNoParams.json"};
45 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
47 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
48 .hasMessage("error reading parameters from \"src/test/resources/parameters/serviceContextNoParams.json\"\n"
49 + "(ParameterRuntimeException):could not find field \"parameterClassName\" in "
50 + "\"contextParameters\" entry");
54 public void testBadParamsTest() {
55 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadParams.json"};
56 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
58 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
59 .hasMessage("error reading parameters from \"src/test/resources/parameters/serviceContextBadParams.json\""
60 + "\n(ParameterRuntimeException):failed to deserialize the parameters for "
61 + "\"contextParameters\" to parameter class "
62 + "\"hello\"\njava.lang.ClassNotFoundException: hello");
66 public void testBadPluginParamNameTest() {
67 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadPluginNameParams.json"};
68 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
70 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
71 .hasMessage("error reading parameters from "
72 + "\"src/test/resources/parameters/serviceContextBadPluginNameParams.json\"\n"
73 + "(ParameterRuntimeException):could not find field \"parameterClassName\" in "
74 + "\"contextParameters\" entry");
78 public void testBadClassParamTest() {
79 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassParams.json"};
80 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
82 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
83 .hasMessage("error reading parameters from "
84 + "\"src/test/resources/parameters/serviceContextBadClassParams.json\""
85 + "\n(ParameterRuntimeException):failed to deserialize "
86 + "the parameters for \"contextParameters\""
87 + " to parameter class \"java.lang.Integer\"\ncom.google.gson.JsonSyntaxException: "
88 + "java.lang.IllegalStateException: Expected NUMBER but was BEGIN_OBJECT at path $");
92 public void testBadPluginClassTest() {
93 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadPluginClassParams.json"};
94 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
96 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
97 .hasMessage("error reading parameters from "
98 + "\"src/test/resources/parameters/serviceContextBadPluginClassParams.json\""
99 + "\n(ClassCastException):class org.onap.policy.apex.service.engine.parameters."
100 + "dummyclasses.SuperDooperExecutorParameters"
101 + " cannot be cast to class org.onap.policy.apex.context.parameters.ContextParameters "
102 + "(org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperExecutorParameters and "
103 + "org.onap.policy.apex.context.parameters.ContextParameters are "
104 + "in unnamed module of loader 'app')");
108 public void testOkFlushParamTest() throws ParameterException {
109 final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKFlushParams.json"};
110 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
112 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
113 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
114 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
115 assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
116 .getPersistorParameters().getFlushPeriod());
121 public void testOkDefaultParamTest() throws ParameterException {
122 final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKDefaultParams.json"};
123 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
125 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
126 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
127 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
128 assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
129 .getPersistorParameters().getFlushPeriod());
134 public void testOkDistParamTest() throws ParameterException {
135 final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKDistParams.json"};
136 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
138 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
139 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
140 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
141 assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
142 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
143 .getDistributorParameters().getClass().getName());
148 public void testOkFullDefaultParamTest() throws ParameterException {
149 final String[] args = {"-c", "src/test/resources/parameters/goodParams.json"};
150 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
152 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
153 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
154 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
155 assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
156 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
157 .getDistributorParameters().getClass().getName());
158 assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
159 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
160 .getLockManagerParameters().getClass().getName());
161 assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
162 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
163 .getPersistorParameters().getClass().getName());
164 assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
165 .getPersistorParameters().getFlushPeriod());
170 public void testOkFullParamTest() throws ParameterException {
171 final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKFullParams.json"};
172 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
174 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
175 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
176 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
177 assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
178 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
179 .getLockManagerParameters().getClass().getName());
180 assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
181 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
182 .getPersistorParameters().getClass().getName());
183 assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
184 .getPersistorParameters().getFlushPeriod());
186 final SuperDooperDistributorParameters infinispanParameters =
187 (SuperDooperDistributorParameters) parameters.getEngineServiceParameters().getEngineParameters()
188 .getContextParameters().getDistributorParameters();
189 assertEquals("org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperDistributorParameters",
190 infinispanParameters.getClass().getName());
191 assertEquals("my/lovely/configFile.xml", infinispanParameters.getConfigFile());
192 assertEquals("holy/stone.xml", infinispanParameters.getJgroupsFile());
193 assertEquals(false, infinispanParameters.isPreferIPv4Stack());
194 assertEquals("fatherted", infinispanParameters.getJgroupsBindAddress());
199 public void testBadClassDistParamTest() {
200 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassDistParams.json"};
201 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
203 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
204 .hasMessage("error reading parameters from "
205 + "\"src/test/resources/parameters/serviceContextBadClassDistParams.json\"\n"
206 + "(ClassCastException):class "
207 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class"
208 + " org.onap.policy.apex.context.parameters.DistributorParameters (org.onap.policy.apex.context."
209 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.DistributorParameters "
210 + "are in unnamed module of loader 'app')");
214 public void testBadClassLockParamTest() {
215 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassLockParams.json"};
216 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
218 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
219 .hasMessage("error reading parameters from "
220 + "\"src/test/resources/parameters/serviceContextBadClassLockParams.json\"\n"
221 + "(ClassCastException):class "
222 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class "
223 + "org.onap.policy.apex.context.parameters.LockManagerParameters (org.onap.policy.apex.context."
224 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.LockManagerParameters "
225 + "are in unnamed module of loader 'app')");
229 public void testBadClassPersistParamTest() {
230 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassPersistParams.json"};
231 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
233 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
234 .hasMessage("error reading parameters from "
235 + "\"src/test/resources/parameters/serviceContextBadClassPersistParams.json\"\n"
236 + "(ClassCastException):class "
237 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class "
238 + "org.onap.policy.apex.context.parameters.PersistorParameters (org.onap.policy.apex.context."
239 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.PersistorParameters "
240 + "are in unnamed module of loader 'app')");