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 "
122 + "(org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperExecutorParameters and "
123 + "org.onap.policy.apex.context.parameters.ContextParameters are "
124 + "in unnamed module of loader 'app')", e.getMessage());
129 public void testOkFlushParamTest() {
130 final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKFlushParams.json"};
131 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
134 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
135 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
136 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
137 assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
138 .getPersistorParameters().getFlushPeriod());
139 } catch (final ParameterException e) {
140 fail("This test should not throw any exception: " + e.getMessage());
145 public void testOkDefaultParamTest() {
146 final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKDefaultParams.json"};
147 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
150 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
151 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
152 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
153 assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
154 .getPersistorParameters().getFlushPeriod());
155 } catch (final ParameterException e) {
156 fail("This test should not throw any exception: " + e.getMessage());
161 public void testOkDistParamTest() {
162 final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKDistParams.json"};
163 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
166 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
167 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
168 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
169 assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
170 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
171 .getDistributorParameters().getClass().getName());
172 } catch (final ParameterException e) {
173 fail("This test should not throw any exception: " + e.getMessage());
178 public void testOkFullDefaultParamTest() {
179 final String[] args = {"-c", "src/test/resources/parameters/goodParams.json"};
180 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
183 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
184 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
185 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
186 assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
187 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
188 .getDistributorParameters().getClass().getName());
189 assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
190 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
191 .getLockManagerParameters().getClass().getName());
192 assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
193 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
194 .getPersistorParameters().getClass().getName());
195 assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
196 .getPersistorParameters().getFlushPeriod());
197 } catch (final ParameterException e) {
198 fail("This test should not throw any exception: " + e.getMessage());
203 public void testOkFullParamTest() {
204 final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKFullParams.json"};
205 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
208 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
209 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
210 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
211 assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
212 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
213 .getLockManagerParameters().getClass().getName());
214 assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
215 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
216 .getPersistorParameters().getClass().getName());
217 assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
218 .getPersistorParameters().getFlushPeriod());
220 final SuperDooperDistributorParameters infinispanParameters =
221 (SuperDooperDistributorParameters) parameters.getEngineServiceParameters().getEngineParameters()
222 .getContextParameters().getDistributorParameters();
223 assertEquals("org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperDistributorParameters",
224 infinispanParameters.getClass().getName());
225 assertEquals("my/lovely/configFile.xml", infinispanParameters.getConfigFile());
226 assertEquals("holy/stone.xml", infinispanParameters.getJgroupsFile());
227 assertEquals(false, infinispanParameters.isPreferIPv4Stack());
228 assertEquals("fatherted", infinispanParameters.getJgroupsBindAddress());
230 } catch (final ParameterException e) {
231 fail("This test should not throw any exception: " + e.getMessage());
236 public void testBadClassDistParamTest() {
237 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassDistParams.json"};
238 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
241 new ApexParameterHandler().getParameters(arguments);
242 fail("This test should throw an exception");
243 } catch (final ParameterException e) {
244 assertEquals("error reading parameters from "
245 + "\"src/test/resources/parameters/serviceContextBadClassDistParams.json\"\n"
246 + "(ClassCastException):class "
247 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class"
248 + " org.onap.policy.apex.context.parameters.DistributorParameters (org.onap.policy.apex.context."
249 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.DistributorParameters "
250 + "are in unnamed module of loader 'app')", e.getMessage());
255 public void testBadClassLockParamTest() {
256 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassLockParams.json"};
257 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
260 new ApexParameterHandler().getParameters(arguments);
261 fail("This test should throw an exception");
262 } catch (final ParameterException e) {
263 assertEquals("error reading parameters from "
264 + "\"src/test/resources/parameters/serviceContextBadClassLockParams.json\"\n"
265 + "(ClassCastException):class "
266 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class "
267 + "org.onap.policy.apex.context.parameters.LockManagerParameters (org.onap.policy.apex.context."
268 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.LockManagerParameters "
269 + "are in unnamed module of loader 'app')", e.getMessage());
274 public void testBadClassPersistParamTest() {
275 final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassPersistParams.json"};
276 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
279 new ApexParameterHandler().getParameters(arguments);
280 fail("This test should throw an exception");
281 } catch (final ParameterException e) {
282 assertEquals("error reading parameters from "
283 + "\"src/test/resources/parameters/serviceContextBadClassPersistParams.json\"\n"
284 + "(ClassCastException):class "
285 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class "
286 + "org.onap.policy.apex.context.parameters.PersistorParameters (org.onap.policy.apex.context."
287 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.PersistorParameters "
288 + "are in unnamed module of loader 'app')", e.getMessage());