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 \"hello\"\njava.lang.ClassNotFoundException: hello",
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 \"src/test/resources/parameters/serviceContextBadClassParams.json\""
101 + "\n(ParameterRuntimeException):failed to deserialize 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 badPluginClassTest() {
110 final String[] args =
111 { "-c", "src/test/resources/parameters/serviceContextBadPluginClassParams.json" };
112 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
115 new ApexParameterHandler().getParameters(arguments);
116 fail("This test should throw an exception");
117 } catch (final ParameterException e) {
118 assertEquals("error reading parameters from "
119 + "\"src/test/resources/parameters/serviceContextBadPluginClassParams.json\""
120 + "\n(ClassCastException):org.onap.policy.apex.service.engine.parameters.dummyclasses."
121 + "SuperDooperExecutorParameters"
122 + " cannot be cast to org.onap.policy.apex.context.parameters.ContextParameters",
128 public void okFlushParamTest() {
129 final String[] args =
130 { "-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",
136 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
137 .getClass().getCanonicalName());
138 assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
139 .getPersistorParameters().getFlushPeriod());
140 } catch (final ParameterException e) {
141 fail("This test should not throw any exception: " + e.getMessage());
146 public void okDefaultParamTest() {
147 final String[] args =
148 { "-c", "src/test/resources/parameters/serviceContextOKDefaultParams.json" };
149 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
152 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
153 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
154 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
155 .getClass().getCanonicalName());
156 assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
157 .getPersistorParameters().getFlushPeriod());
158 } catch (final ParameterException e) {
159 fail("This test should not throw any exception: " + e.getMessage());
164 public void okDistParamTest() {
165 final String[] args =
166 { "-c", "src/test/resources/parameters/serviceContextOKDistParams.json" };
167 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
170 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
171 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
172 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
173 .getClass().getCanonicalName());
174 assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
175 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
176 .getDistributorParameters().getClass().getCanonicalName());
177 } catch (final ParameterException e) {
178 fail("This test should not throw any exception: " + e.getMessage());
183 public void okFullDefaultParamTest() {
184 final String[] args =
185 { "-c", "src/test/resources/parameters/goodParams.json" };
186 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
189 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
190 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
191 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
192 .getClass().getCanonicalName());
193 assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
194 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
195 .getDistributorParameters().getClass().getCanonicalName());
196 assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
197 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
198 .getLockManagerParameters().getClass().getCanonicalName());
199 assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
200 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
201 .getPersistorParameters().getClass().getCanonicalName());
202 assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
203 .getPersistorParameters().getFlushPeriod());
204 } catch (final ParameterException e) {
205 fail("This test should not throw any exception: " + e.getMessage());
210 public void okFullParamTest() {
211 final String[] args =
212 { "-c", "src/test/resources/parameters/serviceContextOKFullParams.json" };
213 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
216 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
217 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
218 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
219 .getClass().getCanonicalName());
220 assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
221 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
222 .getLockManagerParameters().getClass().getCanonicalName());
223 assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
224 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
225 .getPersistorParameters().getClass().getCanonicalName());
226 assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
227 .getPersistorParameters().getFlushPeriod());
229 final SuperDooperDistributorParameters infinispanParameters = (SuperDooperDistributorParameters) parameters
230 .getEngineServiceParameters().getEngineParameters().getContextParameters()
231 .getDistributorParameters();
232 assertEquals("org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperDistributorParameters",
233 infinispanParameters.getClass().getCanonicalName());
234 assertEquals("my/lovely/configFile.xml", infinispanParameters.getConfigFile());
235 assertEquals("holy/stone.xml", infinispanParameters.getJgroupsFile());
236 assertEquals(false, infinispanParameters.isPreferIPv4Stack());
237 assertEquals("fatherted", infinispanParameters.getJgroupsBindAddress());
239 } catch (final ParameterException e) {
240 fail("This test should not throw any exception: " + e.getMessage());
245 public void badClassDistParamTest() {
246 final String[] args =
247 { "-c", "src/test/resources/parameters/serviceContextBadClassDistParams.json" };
248 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
251 new ApexParameterHandler().getParameters(arguments);
252 fail("This test should throw an exception");
253 } catch (final ParameterException e) {
254 assertEquals("error reading parameters from "
255 + "\"src/test/resources/parameters/serviceContextBadClassDistParams.json\"\n"
256 + "(ClassCastException):org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to"
257 + " org.onap.policy.apex.context.parameters.DistributorParameters", e.getMessage());
262 public void badClassLockParamTest() {
263 final String[] args =
264 { "-c", "src/test/resources/parameters/serviceContextBadClassLockParams.json" };
265 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
268 new ApexParameterHandler().getParameters(arguments);
269 fail("This test should throw an exception");
270 } catch (final ParameterException e) {
271 assertEquals("error reading parameters from "
272 + "\"src/test/resources/parameters/serviceContextBadClassLockParams.json\"\n"
273 + "(ClassCastException):org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to"
274 + " org.onap.policy.apex.context.parameters.LockManagerParameters", e.getMessage());
279 public void badClassPersistParamTest() {
280 final String[] args =
281 { "-c", "src/test/resources/parameters/serviceContextBadClassPersistParams.json" };
282 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
285 new ApexParameterHandler().getParameters(arguments);
286 fail("This test should throw an exception");
287 } catch (final ParameterException e) {
288 assertEquals("error reading parameters from "
289 + "\"src/test/resources/parameters/serviceContextBadClassPersistParams.json\"\n"
290 + "(ClassCastException):org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to"
291 + " org.onap.policy.apex.context.parameters.PersistorParameters", e.getMessage());