2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * Modifications Copyright (C) 2020 Nordix Foundation.
5 * Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
19 * SPDX-License-Identifier: Apache-2.0
20 * ============LICENSE_END=========================================================
23 package org.onap.policy.apex.service.engine.parameters;
25 import static org.assertj.core.api.Assertions.assertThatThrownBy;
26 import static org.junit.Assert.assertEquals;
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 = {"-p", "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 = {"-p", "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 " + "\"hello\"\njava.lang.ClassNotFoundException: hello");
65 public void testBadPluginParamNameTest() {
66 final String[] args = {"-p", "src/test/resources/parameters/serviceContextBadPluginNameParams.json"};
67 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
69 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
70 .hasMessage("error reading parameters from "
71 + "\"src/test/resources/parameters/serviceContextBadPluginNameParams.json\"\n"
72 + "(ParameterRuntimeException):could not find field \"parameterClassName\" in "
73 + "\"contextParameters\" entry");
77 public void testBadClassParamTest() {
78 final String[] args = {"-p", "src/test/resources/parameters/serviceContextBadClassParams.json"};
79 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
81 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)).hasMessage(
82 "error reading parameters from " + "\"src/test/resources/parameters/serviceContextBadClassParams.json\""
83 + "\n(ParameterRuntimeException):failed to deserialize " + "the parameters for \"contextParameters\""
84 + " to parameter class \"java.lang.Integer\"\ncom.google.gson.JsonSyntaxException: "
85 + "java.lang.IllegalStateException: Expected NUMBER but was BEGIN_OBJECT at path $");
89 public void testBadPluginClassTest() {
90 final String[] args = {"-p", "src/test/resources/parameters/serviceContextBadPluginClassParams.json"};
91 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
93 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
94 .hasMessage("error reading parameters from "
95 + "\"src/test/resources/parameters/serviceContextBadPluginClassParams.json\""
96 + "\n(ClassCastException):class org.onap.policy.apex.service.engine.parameters."
97 + "dummyclasses.SuperDooperExecutorParameters"
98 + " cannot be cast to class org.onap.policy.apex.context.parameters.ContextParameters "
99 + "(org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperExecutorParameters and "
100 + "org.onap.policy.apex.context.parameters.ContextParameters are "
101 + "in unnamed module of loader 'app')");
105 public void testOkFlushParamTest() throws ParameterException {
106 final String[] args = {"-p", "src/test/resources/parameters/serviceContextOKFlushParams.json"};
107 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
109 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
110 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
111 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
112 assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
113 .getPersistorParameters().getFlushPeriod());
118 public void testOkDefaultParamTest() throws ParameterException {
119 final String[] args = {"-p", "src/test/resources/parameters/serviceContextOKDefaultParams.json"};
120 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
122 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
123 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
124 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
125 assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
126 .getPersistorParameters().getFlushPeriod());
131 public void testOkDistParamTest() throws ParameterException {
132 final String[] args = {"-p", "src/test/resources/parameters/serviceContextOKDistParams.json"};
133 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
135 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
136 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
137 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
138 assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
139 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
140 .getDistributorParameters().getClass().getName());
145 public void testOkFullDefaultParamTest() throws ParameterException {
146 final String[] args = {"-p", "src/test/resources/parameters/goodParams.json"};
147 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
149 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
150 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
151 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
152 assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
153 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
154 .getDistributorParameters().getClass().getName());
155 assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
156 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
157 .getLockManagerParameters().getClass().getName());
158 assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
159 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
160 .getPersistorParameters().getClass().getName());
161 assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
162 .getPersistorParameters().getFlushPeriod());
167 public void testOkFullParamTest() throws ParameterException {
168 final String[] args = {"-p", "src/test/resources/parameters/serviceContextOKFullParams.json"};
169 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
171 final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
172 assertEquals("org.onap.policy.apex.context.parameters.ContextParameters",
173 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
174 assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
175 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
176 .getLockManagerParameters().getClass().getName());
177 assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
178 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
179 .getPersistorParameters().getClass().getName());
180 assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
181 .getPersistorParameters().getFlushPeriod());
183 final SuperDooperDistributorParameters infinispanParameters = (SuperDooperDistributorParameters) parameters
184 .getEngineServiceParameters().getEngineParameters().getContextParameters().getDistributorParameters();
185 assertEquals("org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperDistributorParameters",
186 infinispanParameters.getClass().getName());
187 assertEquals("my/lovely/configFile.xml", infinispanParameters.getConfigFile());
188 assertEquals("holy/stone.xml", infinispanParameters.getJgroupsFile());
189 assertEquals(false, infinispanParameters.isPreferIPv4Stack());
190 assertEquals("fatherted", infinispanParameters.getJgroupsBindAddress());
195 public void testBadClassDistParamTest() {
196 final String[] args = {"-p", "src/test/resources/parameters/serviceContextBadClassDistParams.json"};
197 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
199 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
200 .hasMessage("error reading parameters from "
201 + "\"src/test/resources/parameters/serviceContextBadClassDistParams.json\"\n"
202 + "(ClassCastException):class "
203 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class"
204 + " org.onap.policy.apex.context.parameters.DistributorParameters (org.onap.policy.apex.context."
205 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.DistributorParameters "
206 + "are in unnamed module of loader 'app')");
210 public void testBadClassLockParamTest() {
211 final String[] args = {"-p", "src/test/resources/parameters/serviceContextBadClassLockParams.json"};
212 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
214 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
215 .hasMessage("error reading parameters from "
216 + "\"src/test/resources/parameters/serviceContextBadClassLockParams.json\"\n"
217 + "(ClassCastException):class "
218 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class "
219 + "org.onap.policy.apex.context.parameters.LockManagerParameters (org.onap.policy.apex.context."
220 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.LockManagerParameters "
221 + "are in unnamed module of loader 'app')");
225 public void testBadClassPersistParamTest() {
226 final String[] args = {"-p", "src/test/resources/parameters/serviceContextBadClassPersistParams.json"};
227 final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
229 assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
230 .hasMessage("error reading parameters from "
231 + "\"src/test/resources/parameters/serviceContextBadClassPersistParams.json\"\n"
232 + "(ClassCastException):class "
233 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class "
234 + "org.onap.policy.apex.context.parameters.PersistorParameters (org.onap.policy.apex.context."
235 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.PersistorParameters "
236 + "are in unnamed module of loader 'app')");