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.fail;
27 import org.junit.Test;
28 import org.onap.policy.apex.service.engine.main.ApexCommandLineArguments;
29 import org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperDistributorParameters;
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 ContextParameterTests {
42 public void testNoParamsTest() {
43 final String[] args = {"-c", "src/test/resources/parameters/serviceContextNoParams.json"};
44 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
47 new ApexParameterHandler().getParameters(arguments);
48 fail("This test should throw an exception");
49 } catch (final ParameterException e) {
50 assertEquals("error reading parameters from \"src/test/resources/parameters/serviceContextNoParams.json\"\n"
51 + "(ParameterRuntimeException):could not find field \"parameterClassName\" in "
52 + "\"contextParameters\" entry", e.getMessage());
57 public void testBadParamsTest() {
58 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadParams.json"};
59 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
62 new ApexParameterHandler().getParameters(arguments);
63 fail("This test should throw an exception");
64 } catch (final ParameterException e) {
65 assertEquals("error reading parameters from \"src/test/resources/parameters/serviceContextBadParams.json\""
66 + "\n(ParameterRuntimeException):failed to deserialize the parameters for "
67 + "\"contextParameters\" to parameter class "
68 + "\"hello\"\njava.lang.ClassNotFoundException: hello", e.getMessage());
73 public void testBadPluginParamNameTest() {
74 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadPluginNameParams.json"};
75 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
78 new ApexParameterHandler().getParameters(arguments);
79 fail("This test should throw an exception");
80 } catch (final ParameterException e) {
81 assertEquals("error reading parameters from "
82 + "\"src/test/resources/parameters/serviceContextBadPluginNameParams.json\"\n"
83 + "(ParameterRuntimeException):could not find field \"parameterClassName\" in "
84 + "\"contextParameters\" entry", e.getMessage());
89 public void testBadClassParamTest() {
90 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassParams.json"};
91 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
94 new ApexParameterHandler().getParameters(arguments);
95 fail("This test should throw an exception");
96 } catch (final ParameterException e) {
98 "error reading parameters from "
99 + "\"src/test/resources/parameters/serviceContextBadClassParams.json\""
100 + "\n(ParameterRuntimeException):failed to deserialize "
101 + "the parameters for \"contextParameters\""
102 + " to parameter class \"java.lang.Integer\"\ncom.google.gson.JsonSyntaxException: "
103 + "java.lang.IllegalStateException: Expected NUMBER but was BEGIN_OBJECT at path $",
109 public void testBadPluginClassTest() {
110 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadPluginClassParams.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/serviceContextBadPluginClassParams.json\""
119 + "\n(ClassCastException):class org.onap.policy.apex.service.engine.parameters."
120 + "dummyclasses.SuperDooperExecutorParameters"
121 + " cannot be cast to class org.onap.policy.apex.context.parameters.ContextParameters (org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperExecutorParameters and org.onap.policy.apex.context.parameters.ContextParameters are in unnamed module of loader 'app')",
127 public void testOkFlushParamTest() {
128 final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKFlushParams.json"};
129 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
132 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
133 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
134 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
135 assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
136 .getPersistorParameters().getFlushPeriod());
137 } catch (final ParameterException e) {
138 fail("This test should not throw any exception: " + e.getMessage());
143 public void testOkDefaultParamTest() {
144 final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKDefaultParams.json"};
145 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
148 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
149 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
150 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
151 assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
152 .getPersistorParameters().getFlushPeriod());
153 } catch (final ParameterException e) {
154 fail("This test should not throw any exception: " + e.getMessage());
159 public void testOkDistParamTest() {
160 final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKDistParams.json"};
161 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
164 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
165 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
166 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
167 assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
168 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
169 .getDistributorParameters().getClass().getName());
170 } catch (final ParameterException e) {
171 fail("This test should not throw any exception: " + e.getMessage());
176 public void testOkFullDefaultParamTest() {
177 final String[] args = {"-c", "src/test/resources/parameters/goodParams.json"};
178 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
181 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
182 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
183 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
184 assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
185 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
186 .getDistributorParameters().getClass().getName());
187 assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
188 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
189 .getLockManagerParameters().getClass().getName());
190 assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
191 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
192 .getPersistorParameters().getClass().getName());
193 assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
194 .getPersistorParameters().getFlushPeriod());
195 } catch (final ParameterException e) {
196 fail("This test should not throw any exception: " + e.getMessage());
201 public void testOkFullParamTest() {
202 final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKFullParams.json"};
203 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
206 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
207 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
208 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
209 assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
210 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
211 .getLockManagerParameters().getClass().getName());
212 assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
213 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
214 .getPersistorParameters().getClass().getName());
215 assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
216 .getPersistorParameters().getFlushPeriod());
218 final SuperDooperDistributorParameters infinispanParameters =
219 (SuperDooperDistributorParameters) parameters.getEngineServiceParameters().getEngineParameters()
220 .getContextParameters().getDistributorParameters();
221 assertEquals("org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperDistributorParameters",
222 infinispanParameters.getClass().getName());
223 assertEquals("my/lovely/configFile.xml", infinispanParameters.getConfigFile());
224 assertEquals("holy/stone.xml", infinispanParameters.getJgroupsFile());
225 assertEquals(false, infinispanParameters.isPreferIPv4Stack());
226 assertEquals("fatherted", infinispanParameters.getJgroupsBindAddress());
228 } catch (final ParameterException e) {
229 fail("This test should not throw any exception: " + e.getMessage());
234 public void testBadClassDistParamTest() {
235 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassDistParams.json"};
236 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
239 new ApexParameterHandler().getParameters(arguments);
240 fail("This test should throw an exception");
241 } catch (final ParameterException e) {
242 assertEquals("error reading parameters from "
243 + "\"src/test/resources/parameters/serviceContextBadClassDistParams.json\"\n"
244 + "(ClassCastException):class "
245 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class"
246 + " org.onap.policy.apex.context.parameters.DistributorParameters (org.onap.policy.apex.context."
247 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.DistributorParameters "
248 + "are in unnamed module of loader 'app')", e.getMessage());
253 public void testBadClassLockParamTest() {
254 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassLockParams.json"};
255 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
258 new ApexParameterHandler().getParameters(arguments);
259 fail("This test should throw an exception");
260 } catch (final ParameterException e) {
261 assertEquals("error reading parameters from "
262 + "\"src/test/resources/parameters/serviceContextBadClassLockParams.json\"\n"
263 + "(ClassCastException):class "
264 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class "
265 + "org.onap.policy.apex.context.parameters.LockManagerParameters (org.onap.policy.apex.context."
266 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.LockManagerParameters "
267 + "are in unnamed module of loader 'app')", e.getMessage());
272 public void testBadClassPersistParamTest() {
273 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassPersistParams.json"};
274 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
277 new ApexParameterHandler().getParameters(arguments);
278 fail("This test should throw an exception");
279 } catch (final ParameterException e) {
280 assertEquals("error reading parameters from "
281 + "\"src/test/resources/parameters/serviceContextBadClassPersistParams.json\"\n"
282 + "(ClassCastException):class "
283 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class "
284 + "org.onap.policy.apex.context.parameters.PersistorParameters (org.onap.policy.apex.context."
285 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.PersistorParameters "
286 + "are in unnamed module of loader 'app')", e.getMessage());