Checkstyle the services-engine package
[policy/apex-pdp.git] / services / services-engine / src / test / java / org / onap / policy / apex / service / engine / parameters / ContextParameterTests.java
1 /*-
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
8  * 
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  * 
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.
16  * 
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.apex.service.engine.parameters;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.fail;
25
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.ApexParameterException;
30 import org.onap.policy.apex.service.parameters.ApexParameterHandler;
31 import org.onap.policy.apex.service.parameters.ApexParameters;
32
33 /**
34  * Test for an empty parameter file.
35  * 
36  * @author Liam Fallon (liam.fallon@ericsson.com)
37  */
38 public class ContextParameterTests {
39
40     @Test
41     public void noParamsTest() {
42         final String[] args = {"-c", "src/test/resources/parameters/serviceContextNoParams.json"};
43         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
44
45         try {
46             new ApexParameterHandler().getParameters(arguments);
47             fail("This test should throw an exception");
48         } catch (final ApexParameterException e) {
49             assertEquals("error reading parameters from \"src/test/resources/parameters/serviceContextNoParams.json\"\n"
50                     + "(ApexParameterRuntimeException):could not find field \"parameterClassName\" in "
51                     + "\"contextParameters\" entry", e.getMessage());
52         }
53     }
54
55     @Test
56     public void badParamsTest() {
57         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadParams.json"};
58         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
59
60         try {
61             new ApexParameterHandler().getParameters(arguments);
62             fail("This test should throw an exception");
63         } catch (final ApexParameterException e) {
64             assertEquals("error reading parameters from \"src/test/resources/parameters/serviceContextBadParams.json\""
65                     + "\n(ApexParameterRuntimeException):failed to deserialize the parameters for "
66                     + "\"contextParameters\" to parameter class \"hello\"\njava.lang.ClassNotFoundException: hello",
67                     e.getMessage());
68         }
69     }
70
71     @Test
72     public void badPluginParamNameTest() {
73         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadPluginNameParams.json"};
74         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
75
76         try {
77             new ApexParameterHandler().getParameters(arguments);
78             fail("This test should throw an exception");
79         } catch (final ApexParameterException e) {
80             assertEquals("error reading parameters from "
81                     + "\"src/test/resources/parameters/serviceContextBadPluginNameParams.json\"\n"
82                     + "(ApexParameterRuntimeException):could not find field \"parameterClassName\" in "
83                     + "\"contextParameters\" entry", e.getMessage());
84         }
85     }
86
87     @Test
88     public void badClassParamTest() {
89         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassParams.json"};
90         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
91
92         try {
93             new ApexParameterHandler().getParameters(arguments);
94             fail("This test should throw an exception");
95         } catch (final ApexParameterException e) {
96             assertEquals(
97                     "error reading parameters from \"src/test/resources/parameters/serviceContextBadClassParams.json\""
98                     + "\n(ApexParameterRuntimeException):failed to deserialize the parameters for \"contextParameters\""
99                     + " to parameter class \"java.lang.Integer\"\ncom.google.gson.JsonSyntaxException: "
100                     + "java.lang.IllegalStateException: Expected NUMBER but was BEGIN_OBJECT at path $",
101                     e.getMessage());
102         }
103     }
104
105     @Test
106     public void badPluginClassTest() {
107         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadPluginClassParams.json"};
108         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
109
110         try {
111             new ApexParameterHandler().getParameters(arguments);
112             fail("This test should throw an exception");
113         } catch (final ApexParameterException e) {
114             assertEquals("error reading parameters from "
115                     + "\"src/test/resources/parameters/serviceContextBadPluginClassParams.json\""
116                     + "\n(ClassCastException):org.onap.policy.apex.service.engine.parameters.dummyclasses."
117                     + "SuperDooperExecutorParameters"
118                     + " cannot be cast to org.onap.policy.apex.context.parameters.ContextParameters", e.getMessage());
119         }
120     }
121
122     @Test
123     public void okFlushParamTest() {
124         final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKFlushParams.json"};
125         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
126
127         try {
128             final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
129             assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
130                     .getEngineServiceParameters().getEngineParameters().getContextParameters().getParameterClassName());
131             assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
132                     .getPersistorParameters().getFlushPeriod());
133         } catch (final ApexParameterException e) {
134             fail("This test should not throw any exception: " + e.getMessage());
135         }
136     }
137
138     @Test
139     public void okDefaultParamTest() {
140         final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKDefaultParams.json"};
141         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
142
143         try {
144             final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
145             assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
146                     .getEngineServiceParameters().getEngineParameters().getContextParameters().getParameterClassName());
147             assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
148                     .getPersistorParameters().getFlushPeriod());
149         } catch (final ApexParameterException e) {
150             fail("This test should not throw any exception: " + e.getMessage());
151         }
152     }
153
154     @Test
155     public void okDistParamTest() {
156         final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKDistParams.json"};
157         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
158
159         try {
160             final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
161             assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
162                     .getEngineServiceParameters().getEngineParameters().getContextParameters().getParameterClassName());
163             assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
164                     parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
165                             .getDistributorParameters().getParameterClassName());
166         } catch (final ApexParameterException e) {
167             fail("This test should not throw any exception: " + e.getMessage());
168         }
169     }
170
171     @Test
172     public void okFullDefaultParamTest() {
173         final String[] args = {"-c", "src/test/resources/parameters/goodParams.json"};
174         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
175
176         try {
177             final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
178             assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
179                     .getEngineServiceParameters().getEngineParameters().getContextParameters().getParameterClassName());
180             assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
181                     parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
182                             .getDistributorParameters().getParameterClassName());
183             assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
184                     parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
185                             .getLockManagerParameters().getParameterClassName());
186             assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
187                     parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
188                             .getPersistorParameters().getParameterClassName());
189             assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
190                     .getPersistorParameters().getFlushPeriod());
191         } catch (final ApexParameterException e) {
192             fail("This test should not throw any exception: " + e.getMessage());
193         }
194     }
195
196     @Test
197     public void okFullParamTest() {
198         final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKFullParams.json"};
199         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
200
201         try {
202             final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
203             assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
204                     .getEngineServiceParameters().getEngineParameters().getContextParameters().getParameterClassName());
205             assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
206                     parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
207                             .getLockManagerParameters().getParameterClassName());
208             assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
209                     parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
210                             .getPersistorParameters().getParameterClassName());
211             assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
212                     .getPersistorParameters().getFlushPeriod());
213
214             final SuperDooperDistributorParameters infinispanParameters =
215                     (SuperDooperDistributorParameters) parameters.getEngineServiceParameters().getEngineParameters()
216                             .getContextParameters().getDistributorParameters();
217             assertEquals("org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperDistributorParameters",
218                     infinispanParameters.getParameterClassName());
219             assertEquals("my/lovely/configFile.xml", infinispanParameters.getConfigFile());
220             assertEquals("holy/stone.xml", infinispanParameters.getJgroupsFile());
221             assertEquals(false, infinispanParameters.preferIPv4Stack());
222             assertEquals("fatherted", infinispanParameters.getjGroupsBindAddress());
223
224         } catch (final ApexParameterException e) {
225             fail("This test should not throw any exception: " + e.getMessage());
226         }
227     }
228
229     @Test
230     public void badClassDistParamTest() {
231         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassDistParams.json"};
232         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
233
234         try {
235             new ApexParameterHandler().getParameters(arguments);
236             fail("This test should throw an exception");
237         } catch (final ApexParameterException e) {
238             assertEquals("error reading parameters from "
239                     + "\"src/test/resources/parameters/serviceContextBadClassDistParams.json\"\n"
240                     + "(ClassCastException):org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to"
241                     + " org.onap.policy.apex.context.parameters.DistributorParameters", e.getMessage());
242         }
243     }
244
245     @Test
246     public void badClassLockParamTest() {
247         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassLockParams.json"};
248         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
249
250         try {
251             new ApexParameterHandler().getParameters(arguments);
252             fail("This test should throw an exception");
253         } catch (final ApexParameterException e) {
254             assertEquals("error reading parameters from "
255                     + "\"src/test/resources/parameters/serviceContextBadClassLockParams.json\"\n"
256                     + "(ClassCastException):org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to"
257                     + " org.onap.policy.apex.context.parameters.LockManagerParameters", e.getMessage());
258         }
259     }
260
261     @Test
262     public void badClassPersistParamTest() {
263         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassPersistParams.json"};
264         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
265
266         try {
267             new ApexParameterHandler().getParameters(arguments);
268             fail("This test should throw an exception");
269         } catch (final ApexParameterException e) {
270             assertEquals("error reading parameters from "
271                     + "\"src/test/resources/parameters/serviceContextBadClassPersistParams.json\"\n"
272                     + "(ClassCastException):org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to"
273                     + " org.onap.policy.apex.context.parameters.PersistorParameters", e.getMessage());
274         }
275     }
276 }