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.engine.parameters.dummyclasses.SuperDooperDistributorParameters;
29 import org.onap.policy.apex.service.parameters.ApexParameterHandler;
30 import org.onap.policy.apex.service.parameters.ApexParameters;
31 import org.onap.policy.common.parameters.ParameterException;
34 * Test for an empty parameter file.
36 * @author Liam Fallon (liam.fallon@ericsson.com)
38 public class ContextParameterTests {
41 public void noParamsTest() {
43 { "-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 badParamsTest() {
59 { "-c", "src/test/resources/parameters/serviceContextBadParams.json" };
60 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
63 new ApexParameterHandler().getParameters(arguments);
64 fail("This test should throw an exception");
65 } catch (final ParameterException e) {
66 assertEquals("error reading parameters from \"src/test/resources/parameters/serviceContextBadParams.json\""
67 + "\n(ParameterRuntimeException):failed to deserialize the parameters for "
68 + "\"contextParameters\" to parameter class "
69 + "\"hello\"\njava.lang.ClassNotFoundException: hello", e.getMessage());
74 public void badPluginParamNameTest() {
76 { "-c", "src/test/resources/parameters/serviceContextBadPluginNameParams.json" };
77 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
80 new ApexParameterHandler().getParameters(arguments);
81 fail("This test should throw an exception");
82 } catch (final ParameterException e) {
83 assertEquals("error reading parameters from "
84 + "\"src/test/resources/parameters/serviceContextBadPluginNameParams.json\"\n"
85 + "(ParameterRuntimeException):could not find field \"parameterClassName\" in "
86 + "\"contextParameters\" entry", e.getMessage());
91 public void badClassParamTest() {
93 { "-c", "src/test/resources/parameters/serviceContextBadClassParams.json" };
94 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
97 new ApexParameterHandler().getParameters(arguments);
98 fail("This test should throw an exception");
99 } catch (final ParameterException e) {
100 assertEquals("error reading parameters from "
101 + "\"src/test/resources/parameters/serviceContextBadClassParams.json\""
102 + "\n(ParameterRuntimeException):failed to deserialize "
103 + "the parameters for \"contextParameters\""
104 + " to parameter class \"java.lang.Integer\"\ncom.google.gson.JsonSyntaxException: "
105 + "java.lang.IllegalStateException: Expected NUMBER but was BEGIN_OBJECT at path $",
111 public void badPluginClassTest() {
112 final String[] args =
113 { "-c", "src/test/resources/parameters/serviceContextBadPluginClassParams.json" };
114 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
117 new ApexParameterHandler().getParameters(arguments);
118 fail("This test should throw an exception");
119 } catch (final ParameterException e) {
120 assertEquals("error reading parameters from "
121 + "\"src/test/resources/parameters/serviceContextBadPluginClassParams.json\""
122 + "\n(ClassCastException):org.onap.policy.apex.service.engine.parameters.dummyclasses."
123 + "SuperDooperExecutorParameters"
124 + " cannot be cast to org.onap.policy.apex.context.parameters.ContextParameters",
130 public void okFlushParamTest() {
131 final String[] args =
132 { "-c", "src/test/resources/parameters/serviceContextOKFlushParams.json" };
133 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
136 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
137 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
138 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
139 .getClass().getName());
140 assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
141 .getPersistorParameters().getFlushPeriod());
142 } catch (final ParameterException e) {
143 fail("This test should not throw any exception: " + e.getMessage());
148 public void okDefaultParamTest() {
149 final String[] args =
150 { "-c", "src/test/resources/parameters/serviceContextOKDefaultParams.json" };
151 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
154 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
155 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
156 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
157 .getClass().getName());
158 assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
159 .getPersistorParameters().getFlushPeriod());
160 } catch (final ParameterException e) {
161 fail("This test should not throw any exception: " + e.getMessage());
166 public void okDistParamTest() {
167 final String[] args =
168 { "-c", "src/test/resources/parameters/serviceContextOKDistParams.json" };
169 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
172 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
173 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
174 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
175 .getClass().getName());
176 assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
177 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
178 .getDistributorParameters().getClass().getName());
179 } catch (final ParameterException e) {
180 fail("This test should not throw any exception: " + e.getMessage());
185 public void okFullDefaultParamTest() {
186 final String[] args =
187 { "-c", "src/test/resources/parameters/goodParams.json" };
188 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
191 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
192 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
193 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
194 .getClass().getName());
195 assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
196 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
197 .getDistributorParameters().getClass().getName());
198 assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
199 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
200 .getLockManagerParameters().getClass().getName());
201 assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
202 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
203 .getPersistorParameters().getClass().getName());
204 assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
205 .getPersistorParameters().getFlushPeriod());
206 } catch (final ParameterException e) {
207 fail("This test should not throw any exception: " + e.getMessage());
212 public void okFullParamTest() {
213 final String[] args =
214 { "-c", "src/test/resources/parameters/serviceContextOKFullParams.json" };
215 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
218 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
219 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
220 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
221 .getClass().getName());
222 assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
223 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
224 .getLockManagerParameters().getClass().getName());
225 assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
226 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
227 .getPersistorParameters().getClass().getName());
228 assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
229 .getPersistorParameters().getFlushPeriod());
231 final SuperDooperDistributorParameters infinispanParameters = (SuperDooperDistributorParameters) parameters
232 .getEngineServiceParameters().getEngineParameters().getContextParameters()
233 .getDistributorParameters();
234 assertEquals("org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperDistributorParameters",
235 infinispanParameters.getClass().getName());
236 assertEquals("my/lovely/configFile.xml", infinispanParameters.getConfigFile());
237 assertEquals("holy/stone.xml", infinispanParameters.getJgroupsFile());
238 assertEquals(false, infinispanParameters.isPreferIPv4Stack());
239 assertEquals("fatherted", infinispanParameters.getJgroupsBindAddress());
241 } catch (final ParameterException e) {
242 fail("This test should not throw any exception: " + e.getMessage());
247 public void badClassDistParamTest() {
248 final String[] args =
249 { "-c", "src/test/resources/parameters/serviceContextBadClassDistParams.json" };
250 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
253 new ApexParameterHandler().getParameters(arguments);
254 fail("This test should throw an exception");
255 } catch (final ParameterException e) {
256 assertEquals("error reading parameters from "
257 + "\"src/test/resources/parameters/serviceContextBadClassDistParams.json\"\n"
258 + "(ClassCastException):"
259 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to"
260 + " org.onap.policy.apex.context.parameters.DistributorParameters", e.getMessage());
265 public void badClassLockParamTest() {
266 final String[] args =
267 { "-c", "src/test/resources/parameters/serviceContextBadClassLockParams.json" };
268 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
271 new ApexParameterHandler().getParameters(arguments);
272 fail("This test should throw an exception");
273 } catch (final ParameterException e) {
274 assertEquals("error reading parameters from "
275 + "\"src/test/resources/parameters/serviceContextBadClassLockParams.json\"\n"
276 + "(ClassCastException):"
277 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to"
278 + " org.onap.policy.apex.context.parameters.LockManagerParameters", e.getMessage());
283 public void badClassPersistParamTest() {
284 final String[] args =
285 { "-c", "src/test/resources/parameters/serviceContextBadClassPersistParams.json" };
286 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
289 new ApexParameterHandler().getParameters(arguments);
290 fail("This test should throw an exception");
291 } catch (final ParameterException e) {
292 assertEquals("error reading parameters from "
293 + "\"src/test/resources/parameters/serviceContextBadClassPersistParams.json\"\n"
294 + "(ClassCastException):"
295 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to"
296 + " org.onap.policy.apex.context.parameters.PersistorParameters", e.getMessage());