2 * ============LICENSE_START=======================================================
3 * Copyright (C) 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.distribution.main.parameters;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertTrue;
25 import static org.junit.Assert.fail;
27 import org.junit.Test;
28 import org.onap.policy.distribution.main.PolicyDistributionException;
29 import org.onap.policy.distribution.main.startstop.DistributionCommandLineArguments;
32 * Class to perform unit test of DistributionParameterHandler.
34 * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
36 public class TestDistributionParameterHandler {
38 public void testParameterHandlerNoParameterFile() throws PolicyDistributionException {
39 final String[] noArgumentString =
40 { "-c", "parameters/NoParameterFile.json" };
42 final DistributionCommandLineArguments noArguments = new DistributionCommandLineArguments();
43 noArguments.parse(noArgumentString);
46 new DistributionParameterHandler().getParameters(noArguments);
47 fail("test should throw an exception here");
48 } catch (final Exception e) {
49 assertTrue(e.getMessage().contains("FileNotFoundException"));
54 public void testParameterHandlerEmptyParameters() throws PolicyDistributionException {
55 final String[] emptyArgumentString =
56 { "-c", "parameters/EmptyParameters.json" };
58 final DistributionCommandLineArguments emptyArguments = new DistributionCommandLineArguments();
59 emptyArguments.parse(emptyArgumentString);
62 new DistributionParameterHandler().getParameters(emptyArguments);
63 fail("test should throw an exception here");
64 } catch (final Exception e) {
65 assertEquals("no parameters found in \"parameters/EmptyParameters.json\"", e.getMessage());
70 public void testParameterHandlerBadParameters() throws PolicyDistributionException {
71 final String[] badArgumentString =
72 { "-c", "parameters/BadParameters.json" };
74 final DistributionCommandLineArguments badArguments = new DistributionCommandLineArguments();
75 badArguments.parse(badArgumentString);
78 new DistributionParameterHandler().getParameters(badArguments);
79 fail("test should throw an exception here");
80 } catch (final Exception e) {
81 assertEquals("error reading parameters from \"parameters/BadParameters.json\"\n"
82 + "(JsonSyntaxException):java.lang.IllegalStateException: "
83 + "Expected a string but was BEGIN_ARRAY at line 2 column 15 path $.name", e.getMessage());
88 public void testParameterHandlerInvalidParameters() throws PolicyDistributionException {
89 final String[] invalidArgumentString =
90 { "-c", "parameters/InvalidParameters.json" };
92 final DistributionCommandLineArguments invalidArguments = new DistributionCommandLineArguments();
93 invalidArguments.parse(invalidArgumentString);
96 new DistributionParameterHandler().getParameters(invalidArguments);
97 fail("test should throw an exception here");
98 } catch (final Exception e) {
99 assertEquals("error reading parameters from \"parameters/InvalidParameters.json\"\n"
100 + "(JsonSyntaxException):java.lang.IllegalStateException: "
101 + "Expected a string but was BEGIN_ARRAY at line 2 column 15 path $.name", e.getMessage());
106 public void testParameterHandlerNoParameters() throws PolicyDistributionException {
107 final String[] noArgumentString =
108 { "-c", "parameters/NoParameters.json" };
110 final DistributionCommandLineArguments noArguments = new DistributionCommandLineArguments();
111 noArguments.parse(noArgumentString);
114 new DistributionParameterHandler().getParameters(noArguments);
115 fail("test should throw an exception here");
116 } catch (final Exception e) {
117 assertEquals("map parameter \"receptionHandlerParameters\" is null", e.getMessage());
122 public void testParameterHandlerMinumumParameters() throws PolicyDistributionException {
123 final String[] minArgumentString =
124 { "-c", "parameters/MinimumParameters.json" };
126 final DistributionCommandLineArguments minArguments = new DistributionCommandLineArguments();
127 minArguments.parse(minArgumentString);
129 final DistributionParameterGroup parGroup = new DistributionParameterHandler().getParameters(minArguments);
130 assertEquals(CommonTestData.DISTRIBUTION_GROUP_NAME, parGroup.getName());
134 public void testDistributionParameterGroup() throws PolicyDistributionException {
135 final String[] distributionConfigParameters =
136 { "-c", "parameters/DistributionConfigParameters.json" };
138 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
139 arguments.parse(distributionConfigParameters);
141 final DistributionParameterGroup parGroup = new DistributionParameterHandler().getParameters(arguments);
142 assertEquals(CommonTestData.DISTRIBUTION_GROUP_NAME, parGroup.getName());
143 assertEquals(CommonTestData.RECEPTION_HANDLER_TYPE, parGroup.getReceptionHandlerParameters()
144 .get(CommonTestData.SDC_RECEPTION_HANDLER_KEY).getReceptionHandlerType());
145 assertEquals(CommonTestData.DECODER_TYPE,
146 parGroup.getReceptionHandlerParameters().get(CommonTestData.SDC_RECEPTION_HANDLER_KEY)
147 .getPluginHandlerParameters().getPolicyDecoders().get(CommonTestData.TOSCA_DECODER_KEY)
149 assertEquals(CommonTestData.FORWARDER_TYPE,
150 parGroup.getReceptionHandlerParameters().get(CommonTestData.SDC_RECEPTION_HANDLER_KEY)
151 .getPluginHandlerParameters().getPolicyForwarders().get(CommonTestData.PAP_ENGINE_FORWARDER_KEY)
152 .getForwarderType());
156 public void testDistributionParameterGroup_InvalidName() throws PolicyDistributionException {
157 final String[] distributionConfigParameters =
158 { "-c", "parameters/DistributionConfigParameters_InvalidName.json" };
160 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
161 arguments.parse(distributionConfigParameters);
164 new DistributionParameterHandler().getParameters(arguments);
165 fail("test should throw an exception here");
166 } catch (final Exception e) {
167 assertTrue(e.getMessage().contains(
168 "field \"name\" type \"java.lang.String\" value \" \" INVALID, must be a non-blank string"));
173 public void testDistributionParameterGroup_InvalidReceptionHandlerType() throws PolicyDistributionException {
174 final String[] distributionConfigParameters =
175 { "-c", "parameters/DistributionConfigParameters_InvalidReceptionHandlerType.json" };
177 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
178 arguments.parse(distributionConfigParameters);
181 new DistributionParameterHandler().getParameters(arguments);
182 fail("test should throw an exception here");
183 } catch (final Exception e) {
184 assertTrue(e.getMessage()
185 .contains("field \"receptionHandlerType\" type \"java.lang.String\" value \" \" INVALID, "
186 + "must be a non-blank string"));
191 public void testDistributionParameterGroup_InvalidPolicyDecoderType() throws PolicyDistributionException {
192 final String[] distributionConfigParameters =
193 { "-c", "parameters/DistributionConfigParameters_InvalidPolicyDecoderType.json" };
195 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
196 arguments.parse(distributionConfigParameters);
199 new DistributionParameterHandler().getParameters(arguments);
200 fail("test should throw an exception here");
201 } catch (final Exception e) {
202 assertTrue(e.getMessage().contains(
203 "field \"decoderType\" type \"java.lang.String\" value \" \" INVALID, must be a non-blank string"));
208 public void testDistributionParameterGroup_InvalidPolicyForwarderType() throws PolicyDistributionException {
209 final String[] distributionConfigParameters =
210 { "-c", "parameters/DistributionConfigParameters_InvalidPolicyForwarderType.json" };
212 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
213 arguments.parse(distributionConfigParameters);
216 new DistributionParameterHandler().getParameters(arguments);
217 fail("test should throw an exception here");
218 } catch (final Exception e) {
219 assertTrue(e.getMessage().contains("field \"forwarderType\" type \"java.lang.String\" value \" \" INVALID, "
220 + "must be a non-blank string"));
225 public void testDistributionParameterGroup_NoReceptionHandler() throws PolicyDistributionException {
226 final String[] distributionConfigParameters =
227 { "-c", "parameters/DistributionConfigParameters_NoReceptionHandler.json" };
229 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
230 arguments.parse(distributionConfigParameters);
233 new DistributionParameterHandler().getParameters(arguments);
234 fail("test should throw an exception here");
235 } catch (final Exception e) {
236 assertTrue(e.getMessage().contains("map parameter \"receptionHandlerParameters\" is null"));
241 public void testDistributionParameterGroup_EmptyReceptionHandler() throws PolicyDistributionException {
242 final String[] distributionConfigParameters =
243 { "-c", "parameters/DistributionConfigParameters_EmptyReceptionHandler.json" };
245 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
246 arguments.parse(distributionConfigParameters);
249 new DistributionParameterHandler().getParameters(arguments);
250 fail("test should throw an exception here");
251 } catch (final Exception e) {
252 assertTrue(e.getMessage().contains("parameter not a regular parameter: receptionHandlerParameters"));
257 public void testDistributionParameterGroup_NoPolicyDecoder() throws PolicyDistributionException {
258 final String[] distributionConfigParameters =
259 { "-c", "parameters/DistributionConfigParameters_NoPolicyDecoder.json" };
261 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
262 arguments.parse(distributionConfigParameters);
265 new DistributionParameterHandler().getParameters(arguments);
266 fail("test should throw an exception here");
267 } catch (final Exception e) {
268 assertTrue(e.getMessage().contains("map parameter \"policyDecoders\" is null"));
273 public void testDistributionParameterGroup_NoPolicyForwarder() throws PolicyDistributionException {
274 final String[] distributionConfigParameters =
275 { "-c", "parameters/DistributionConfigParameters_NoPolicyForwarder.json" };
277 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
278 arguments.parse(distributionConfigParameters);
281 new DistributionParameterHandler().getParameters(arguments);
282 fail("test should throw an exception here");
283 } catch (final Exception e) {
284 assertTrue(e.getMessage().contains("map parameter \"policyForwarders\" is null"));
289 public void testDistributionParameterGroup_EmptyPolicyDecoder() throws PolicyDistributionException {
290 final String[] distributionConfigParameters =
291 { "-c", "parameters/DistributionConfigParameters_EmptyPolicyDecoder.json" };
293 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
294 arguments.parse(distributionConfigParameters);
297 new DistributionParameterHandler().getParameters(arguments);
298 fail("test should throw an exception here");
299 } catch (final Exception e) {
300 assertTrue(e.getMessage().contains("parameter not a regular parameter: policyDecoders"));
305 public void testDistributionParameterGroup_EmptyPolicyForwarder() throws PolicyDistributionException {
306 final String[] distributionConfigParameters =
307 { "-c", "parameters/DistributionConfigParameters_EmptyPolicyForwarder.json" };
309 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
310 arguments.parse(distributionConfigParameters);
313 new DistributionParameterHandler().getParameters(arguments);
314 fail("test should throw an exception here");
315 } catch (final Exception e) {
316 assertTrue(e.getMessage().contains("parameter not a regular parameter: policyForwarders"));
321 public void testDistributionParameterGroup_InvalidReceptionHandlerClass() throws PolicyDistributionException {
322 final String[] distributionConfigParameters =
323 { "-c", "parameters/DistributionConfigParameters_InvalidReceptionHandlerClass.json" };
325 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
326 arguments.parse(distributionConfigParameters);
329 new DistributionParameterHandler().getParameters(arguments);
330 fail("test should throw an exception here");
331 } catch (final Exception e) {
332 assertTrue(e.getMessage().contains("reception handler class not found in classpath"));
337 public void testDistributionParameterGroup_InvalidPolicyDecoderClass() throws PolicyDistributionException {
338 final String[] distributionConfigParameters =
339 { "-c", "parameters/DistributionConfigParameters_InvalidPolicyDecoderClass.json" };
341 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
342 arguments.parse(distributionConfigParameters);
345 new DistributionParameterHandler().getParameters(arguments);
346 fail("test should throw an exception here");
347 } catch (final Exception e) {
348 assertTrue(e.getMessage().contains("policy decoder class not found in classpath"));
353 public void testDistributionParameterGroup_InvalidPolicyForwarderClass() throws PolicyDistributionException {
354 final String[] distributionConfigParameters =
355 { "-c", "parameters/DistributionConfigParameters_InvalidPolicyForwarderClass.json" };
357 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
358 arguments.parse(distributionConfigParameters);
361 new DistributionParameterHandler().getParameters(arguments);
362 fail("test should throw an exception here");
363 } catch (final Exception e) {
364 assertTrue(e.getMessage().contains("policy forwarder class not found in classpath"));
369 public void testDistributionParameterGroup_InvalidRestServerHost() throws PolicyDistributionException {
370 final String[] distributionConfigParameters =
371 { "-c", "parameters/DistributionConfigParameters_InvalidRestServerHost.json" };
373 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
374 arguments.parse(distributionConfigParameters);
377 new DistributionParameterHandler().getParameters(arguments);
378 fail("test should throw an exception here");
379 } catch (final Exception e) {
380 assertTrue(e.getMessage().contains(
381 "must be a non-blank string containing hostname/ipaddress of the distribution rest server"));
386 public void testDistributionParameterGroup_InvalidRestServerPort() throws PolicyDistributionException {
387 final String[] distributionConfigParameters =
388 { "-c", "parameters/DistributionConfigParameters_InvalidRestServerPort.json" };
390 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
391 arguments.parse(distributionConfigParameters);
394 new DistributionParameterHandler().getParameters(arguments);
395 fail("test should throw an exception here");
396 } catch (final Exception e) {
397 assertTrue(e.getMessage()
398 .contains("must be a positive integer containing port of the distribution rest server"));
403 public void testDistributionParameterGroup_InvalidRestServerUser() throws PolicyDistributionException {
404 final String[] distributionConfigParameters =
405 { "-c", "parameters/DistributionConfigParameters_InvalidRestServerUser.json" };
407 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
408 arguments.parse(distributionConfigParameters);
411 new DistributionParameterHandler().getParameters(arguments);
412 fail("test should throw an exception here");
413 } catch (final Exception e) {
414 assertTrue(e.getMessage().contains(
415 "must be a non-blank string containing userName for distribution rest server credentials"));
420 public void testDistributionParameterGroup_InvalidRestServerPassword() throws PolicyDistributionException {
421 final String[] distributionConfigParameters =
422 { "-c", "parameters/DistributionConfigParameters_InvalidRestServerPassword.json" };
424 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
425 arguments.parse(distributionConfigParameters);
428 new DistributionParameterHandler().getParameters(arguments);
429 fail("test should throw an exception here");
430 } catch (final Exception e) {
431 assertTrue(e.getMessage().contains(
432 "must be a non-blank string containing password for distribution rest server credentials"));