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 java.io.IOException;
28 import java.nio.file.Files;
29 import java.nio.file.Paths;
31 import org.junit.Test;
32 import org.onap.policy.distribution.main.PolicyDistributionException;
33 import org.onap.policy.distribution.main.startstop.DistributionCommandLineArguments;
36 * Class to perform unit test of DistributionParameterHandler.
38 * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
40 public class TestDistributionParameterHandler {
42 public void testParameterHandlerNoParameterFile() throws PolicyDistributionException {
43 final String[] noArgumentString =
44 { "-c", "parameters/NoParameterFile.json" };
46 final DistributionCommandLineArguments noArguments = new DistributionCommandLineArguments();
47 noArguments.parse(noArgumentString);
50 new DistributionParameterHandler().getParameters(noArguments);
51 fail("test should throw an exception here");
52 } catch (final Exception e) {
53 assertTrue(e.getMessage().contains("FileNotFoundException"));
58 public void testParameterHandlerEmptyParameters() throws PolicyDistributionException {
59 final String[] emptyArgumentString =
60 { "-c", "parameters/EmptyParameters.json" };
62 final DistributionCommandLineArguments emptyArguments = new DistributionCommandLineArguments();
63 emptyArguments.parse(emptyArgumentString);
66 new DistributionParameterHandler().getParameters(emptyArguments);
67 fail("test should throw an exception here");
68 } catch (final Exception e) {
69 assertEquals("no parameters found in \"parameters/EmptyParameters.json\"", e.getMessage());
74 public void testParameterHandlerBadParameters() throws PolicyDistributionException {
75 final String[] badArgumentString =
76 { "-c", "parameters/BadParameters.json" };
78 final DistributionCommandLineArguments badArguments = new DistributionCommandLineArguments();
79 badArguments.parse(badArgumentString);
82 new DistributionParameterHandler().getParameters(badArguments);
83 fail("test should throw an exception here");
84 } catch (final Exception e) {
85 assertEquals("error reading parameters from \"parameters/BadParameters.json\"\n"
86 + "(JsonSyntaxException):java.lang.IllegalStateException: "
87 + "Expected a string but was BEGIN_ARRAY at line 2 column 15 path $.name", e.getMessage());
92 public void testParameterHandlerInvalidParameters() throws PolicyDistributionException {
93 final String[] invalidArgumentString =
94 { "-c", "parameters/InvalidParameters.json" };
96 final DistributionCommandLineArguments invalidArguments = new DistributionCommandLineArguments();
97 invalidArguments.parse(invalidArgumentString);
100 new DistributionParameterHandler().getParameters(invalidArguments);
101 fail("test should throw an exception here");
102 } catch (final Exception e) {
103 assertEquals("error reading parameters from \"parameters/InvalidParameters.json\"\n"
104 + "(JsonSyntaxException):java.lang.IllegalStateException: "
105 + "Expected a string but was BEGIN_ARRAY at line 2 column 15 path $.name", e.getMessage());
110 public void testParameterHandlerNoParameters() throws PolicyDistributionException {
111 final String[] noArgumentString =
112 { "-c", "parameters/NoParameters.json" };
114 final DistributionCommandLineArguments noArguments = new DistributionCommandLineArguments();
115 noArguments.parse(noArgumentString);
118 new DistributionParameterHandler().getParameters(noArguments);
119 fail("test should throw an exception here");
120 } catch (final Exception e) {
121 assertEquals("map parameter \"receptionHandlerParameters\" is null", e.getMessage());
126 public void testParameterHandlerMinumumParameters() throws PolicyDistributionException {
127 final String[] minArgumentString =
128 { "-c", "parameters/MinimumParameters.json" };
130 final DistributionCommandLineArguments minArguments = new DistributionCommandLineArguments();
131 minArguments.parse(minArgumentString);
133 final DistributionParameterGroup parGroup = new DistributionParameterHandler().getParameters(minArguments);
134 assertEquals(CommonTestData.DISTRIBUTION_GROUP_NAME, parGroup.getName());
138 public void testDistributionParameterGroup() throws PolicyDistributionException {
139 final String[] distributionConfigParameters =
140 { "-c", "parameters/DistributionConfigParameters.json" };
142 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
143 arguments.parse(distributionConfigParameters);
145 final DistributionParameterGroup parGroup = new DistributionParameterHandler().getParameters(arguments);
146 assertTrue(arguments.checkSetConfigurationFilePath());
147 assertEquals(CommonTestData.DISTRIBUTION_GROUP_NAME, parGroup.getName());
148 assertEquals(CommonTestData.RECEPTION_HANDLER_TYPE, parGroup.getReceptionHandlerParameters()
149 .get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getReceptionHandlerType());
150 assertEquals(CommonTestData.DECODER_TYPE,
151 parGroup.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
152 .getPluginHandlerParameters().getPolicyDecoders().get(CommonTestData.DUMMY_DECODER_KEY)
154 assertEquals(CommonTestData.FORWARDER_TYPE,
155 parGroup.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
156 .getPluginHandlerParameters().getPolicyForwarders()
157 .get(CommonTestData.DUMMY_ENGINE_FORWARDER_KEY).getForwarderType());
161 public void testDistributionParameterGroup_InvalidName() throws PolicyDistributionException {
162 final String[] distributionConfigParameters =
163 { "-c", "parameters/DistributionConfigParameters_InvalidName.json" };
165 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
166 arguments.parse(distributionConfigParameters);
169 new DistributionParameterHandler().getParameters(arguments);
170 fail("test should throw an exception here");
171 } catch (final Exception e) {
172 assertTrue(e.getMessage().contains(
173 "field \"name\" type \"java.lang.String\" value \" \" INVALID, must be a non-blank string"));
178 public void testDistributionParameterGroup_NoReceptionHandler() throws PolicyDistributionException {
179 final String[] distributionConfigParameters =
180 { "-c", "parameters/DistributionConfigParameters_NoReceptionHandler.json" };
182 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
183 arguments.parse(distributionConfigParameters);
186 new DistributionParameterHandler().getParameters(arguments);
187 fail("test should throw an exception here");
188 } catch (final Exception e) {
189 assertTrue(e.getMessage().contains("map parameter \"receptionHandlerParameters\" is null"));
194 public void testDistributionParameterGroup_EmptyReceptionHandler() throws PolicyDistributionException {
195 final String[] distributionConfigParameters =
196 { "-c", "parameters/DistributionConfigParameters_EmptyReceptionHandler.json" };
198 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
199 arguments.parse(distributionConfigParameters);
202 new DistributionParameterHandler().getParameters(arguments);
203 fail("test should throw an exception here");
204 } catch (final Exception e) {
205 assertTrue(e.getMessage().contains("parameter not a regular parameter: receptionHandlerParameters"));
210 public void testDistributionParameterGroup_NoPolicyDecoder() throws PolicyDistributionException {
211 final String[] distributionConfigParameters =
212 { "-c", "parameters/DistributionConfigParameters_NoPolicyDecoder.json" };
214 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
215 arguments.parse(distributionConfigParameters);
218 new DistributionParameterHandler().getParameters(arguments);
219 fail("test should throw an exception here");
220 } catch (final Exception e) {
221 assertTrue(e.getMessage().contains("map parameter \"policyDecoders\" is null"));
226 public void testDistributionParameterGroup_NoPolicyForwarder() throws PolicyDistributionException {
227 final String[] distributionConfigParameters =
228 { "-c", "parameters/DistributionConfigParameters_NoPolicyForwarder.json" };
230 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
231 arguments.parse(distributionConfigParameters);
234 new DistributionParameterHandler().getParameters(arguments);
235 fail("test should throw an exception here");
236 } catch (final Exception e) {
237 assertTrue(e.getMessage().contains("map parameter \"policyForwarders\" is null"));
242 public void testDistributionParameterGroup_EmptyPolicyDecoder() throws PolicyDistributionException {
243 final String[] distributionConfigParameters =
244 { "-c", "parameters/DistributionConfigParameters_EmptyPolicyDecoder.json" };
246 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
247 arguments.parse(distributionConfigParameters);
250 new DistributionParameterHandler().getParameters(arguments);
251 fail("test should throw an exception here");
252 } catch (final Exception e) {
253 assertTrue(e.getMessage().contains("parameter not a regular parameter: policyDecoders"));
258 public void testDistributionParameterGroup_EmptyPolicyForwarder() throws PolicyDistributionException {
259 final String[] distributionConfigParameters =
260 { "-c", "parameters/DistributionConfigParameters_EmptyPolicyForwarder.json" };
262 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
263 arguments.parse(distributionConfigParameters);
266 new DistributionParameterHandler().getParameters(arguments);
267 fail("test should throw an exception here");
268 } catch (final Exception e) {
269 assertTrue(e.getMessage().contains("parameter not a regular parameter: policyForwarders"));
274 public void testDistributionParameterGroup_InvalidReceptionHandlerParameters()
275 throws PolicyDistributionException, IOException {
276 final String[] distributionConfigParameters =
277 { "-c", "parameters/DistributionConfigParameters_InvalidReceptionHandlerParameters.json" };
279 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
280 arguments.parse(distributionConfigParameters);
283 new DistributionParameterHandler().getParameters(arguments);
284 fail("test should throw an exception here");
285 } catch (final Exception e) {
286 final String expectedResult = new String(Files.readAllBytes(
287 Paths.get("src/test/resources/expectedValidationResults/InvalidReceptionHandlerParameters.txt")))
288 .replaceAll("\\s+", "");
289 assertEquals(expectedResult, e.getMessage().replaceAll("\\s+", ""));
294 public void testDistributionParameterGroup_InvalidDecoderAndForwarderParameters()
295 throws PolicyDistributionException, IOException {
296 final String[] distributionConfigParameters =
297 { "-c", "parameters/DistributionConfigParameters_InvalidDecoderAndForwarderParameters.json" };
299 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
300 arguments.parse(distributionConfigParameters);
303 new DistributionParameterHandler().getParameters(arguments);
304 fail("test should throw an exception here");
305 } catch (final Exception e) {
306 final String expectedResult = new String(Files.readAllBytes(
307 Paths.get("src/test/resources/expectedValidationResults/InvalidDecoderAndForwarderParameters.txt")))
308 .replaceAll("\\s+", "");
309 assertEquals(expectedResult, e.getMessage().replaceAll("\\s+", ""));
314 public void testDistributionParameterGroup_InvalidRestServerParameters()
315 throws PolicyDistributionException, IOException {
316 final String[] distributionConfigParameters =
317 { "-c", "parameters/DistributionConfigParameters_InvalidRestServerParameters.json" };
319 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
320 arguments.parse(distributionConfigParameters);
323 new DistributionParameterHandler().getParameters(arguments);
324 fail("test should throw an exception here");
325 } catch (final Exception e) {
326 final String expectedResult = new String(Files.readAllBytes(
327 Paths.get("src/test/resources/expectedValidationResults/InvalidRestServerParameters.txt")))
328 .replaceAll("\\s+", "");
329 assertEquals(expectedResult, e.getMessage().replaceAll("\\s+", ""));
334 public void testDistributionVersion() throws PolicyDistributionException {
335 final String[] distributionConfigParameters =
337 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
338 final String version = arguments.parse(distributionConfigParameters);
339 assertTrue(version.startsWith("ONAP Policy Framework Distribution Service"));
343 public void testDistributionHelp() throws PolicyDistributionException {
344 final String[] distributionConfigParameters =
346 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
347 final String help = arguments.parse(distributionConfigParameters);
348 assertTrue(help.startsWith("usage:"));
352 public void testDistributionInvalidOption() throws PolicyDistributionException {
353 final String[] distributionConfigParameters =
355 final DistributionCommandLineArguments arguments = new DistributionCommandLineArguments();
357 arguments.parse(distributionConfigParameters);
358 } catch (final Exception exp) {
359 assertTrue(exp.getMessage().startsWith("invalid command line arguments specified"));