b32ba14ba77e84f25193c2295e958efbf9166ec3
[policy/apex-pdp.git] / services / services-engine / src / test / java / org / onap / policy / apex / service / engine / parameters / SyncParameterTests.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
4  *  Modifications Copyright (C) 2019-2020 Nordix Foundation.
5  * ================================================================================
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  * SPDX-License-Identifier: Apache-2.0
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.policy.apex.service.engine.parameters;
23
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertTrue;
26 import static org.junit.Assert.fail;
27
28 import java.util.Arrays;
29
30 import org.junit.Test;
31 import org.onap.policy.apex.service.engine.main.ApexCommandLineArguments;
32 import org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperCarrierTechnologyParameters;
33 import org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperTokenDelimitedEventProtocolParameters;
34 import org.onap.policy.apex.service.parameters.ApexParameterHandler;
35 import org.onap.policy.apex.service.parameters.ApexParameters;
36 import org.onap.policy.apex.service.parameters.carriertechnology.CarrierTechnologyParameters;
37 import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerPeeredMode;
38 import org.onap.policy.apex.service.parameters.eventprotocol.EventProtocolParameters;
39 import org.onap.policy.common.parameters.ParameterException;
40
41 /**
42  * Test for an empty parameter file.
43  *
44  * @author Liam Fallon (liam.fallon@ericsson.com)
45  */
46 public class SyncParameterTests {
47     @Test
48     public void testSyncBadNoSyncWithPeer() throws ParameterException {
49         final String[] args = {"-c", "src/test/resources/parameters/syncBadParamsNoSyncWithPeer.json"};
50         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
51
52         try {
53             new ApexParameterHandler().getParameters(arguments);
54             fail("This test should throw an exception");
55         } catch (final ParameterException e) {
56             assertEquals("validation error(s) on parameters from "
57                     + "\"src/test/resources/parameters/syncBadParamsNoSyncWithPeer.json\"\n"
58                     + "parameter group \"APEX_PARAMETERS\" type "
59                     + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, "
60                     + "parameter group has status INVALID\n"
61                     + "  parameter group map \"eventOutputParameters\" INVALID, "
62                     + "parameter group map has status INVALID\n" + "    parameter group \"SyncProducer0\" type "
63                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
64                     + ", specified peered mode \"SYNCHRONOUS\" "
65                     + "peer is illegal on eventOutputParameters \"SyncProducer0\" \n", e.getMessage());
66         }
67     }
68
69     @Test
70     public void testSyncBadNotSyncWithPeer() throws ParameterException {
71         final String[] args = {"-c", "src/test/resources/parameters/syncBadParamsNotSyncWithPeer.json"};
72         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
73
74         try {
75             new ApexParameterHandler().getParameters(arguments);
76             fail("This test should throw an exception");
77         } catch (final ParameterException e) {
78             assertEquals("validation error(s) on parameters from "
79                     + "\"src/test/resources/parameters/syncBadParamsNotSyncWithPeer.json\"\n"
80                     + "parameter group \"APEX_PARAMETERS\" type "
81                     + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, "
82                     + "parameter group has status INVALID\n"
83                     + "  parameter group map \"eventOutputParameters\" INVALID, "
84                     + "parameter group map has status INVALID\n" + "    parameter group \"SyncProducer0\" type "
85                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
86                     + ", specified peered mode \"SYNCHRONOUS\" peer is illegal "
87                     + "on eventOutputParameters \"SyncProducer0\" \n", e.getMessage());
88         }
89     }
90
91     @Test
92     public void testSyncBadSyncBadPeers() throws ParameterException {
93         final String[] args = {"-c", "src/test/resources/parameters/syncBadParamsBadPeers.json"};
94         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
95
96         try {
97             new ApexParameterHandler().getParameters(arguments);
98             fail("This test should throw an exception");
99         } catch (final ParameterException e) {
100             assertEquals("validation error(s) on parameters from "
101                     + "\"src/test/resources/parameters/syncBadParamsBadPeers.json\"\n"
102                     + "parameter group \"APEX_PARAMETERS\" type "
103                     + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, "
104                     + "parameter group has status INVALID\n"
105                     + "  parameter group map \"eventOutputParameters\" INVALID, "
106                     + "parameter group map has status INVALID\n" + "    parameter group \"SyncProducer0\" type "
107                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
108                     + ", peer \"SyncProducer1 for peered mode SYNCHRONOUS does not exist "
109                     + "or is not defined with the same peered mode\n" + "    parameter group \"SyncProducer1\" type "
110                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
111                     + ", peer \"SyncProducer0 for peered mode SYNCHRONOUS does not exist "
112                     + "or is not defined with the same peered mode\n"
113                     + "  parameter group map \"eventInputParameters\" INVALID, "
114                     + "parameter group map has status INVALID\n" + "    parameter group \"SyncConsumer0\" type "
115                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
116                     + ", peer \"SyncConsumer1 for peered mode SYNCHRONOUS does not exist "
117                     + "or is not defined with the same peered mode\n" + "    parameter group \"SyncConsumer1\" type "
118                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
119                     + ", peer \"SyncConsumer0 for peered mode SYNCHRONOUS does not exist "
120                     + "or is not defined with the same peered mode\n", e.getMessage());
121         }
122     }
123
124     @Test
125     public void testSyncBadSyncInvalidTimeout() throws ParameterException {
126         final String[] args = {"-c", "src/test/resources/parameters/syncBadParamsInvalidTimeout.json"};
127         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
128
129         try {
130             new ApexParameterHandler().getParameters(arguments);
131             fail("This test should throw an exception");
132         } catch (final ParameterException e) {
133             assertEquals("validation error(s) on parameters from "
134                     + "\"src/test/resources/parameters/syncBadParamsInvalidTimeout.json\"\n"
135                     + "parameter group \"APEX_PARAMETERS\" type "
136                     + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, "
137                     + "parameter group has status INVALID\n"
138                     + "  parameter group map \"eventOutputParameters\" INVALID, "
139                     + "parameter group map has status INVALID\n" + "    parameter group \"SyncProducer0\" type "
140                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID,"
141                     + " specified peered mode \"SYNCHRONOUS\" timeout value \"-10\" is illegal, "
142                     + "specify a non-negative timeout value in milliseconds\n"
143                     + "    parameter group \"SyncProducer1\" type "
144                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" "
145                     + "INVALID, specified peered mode \"SYNCHRONOUS\" timeout value \"-3\" is illegal, "
146                     + "specify a non-negative timeout value in milliseconds\n"
147                     + "  parameter group map \"eventInputParameters\" INVALID, "
148                     + "parameter group map has status INVALID\n" + "    parameter group \"SyncConsumer0\" type "
149                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" "
150                     + "INVALID, specified peered mode \"SYNCHRONOUS\" timeout value \"-1\" is illegal, "
151                     + "specify a non-negative timeout value in milliseconds\n"
152                     + "    parameter group \"SyncConsumer1\" type "
153                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID,"
154                     + " specified peered mode \"SYNCHRONOUS\" timeout value \"-99999999\" is illegal, "
155                     + "specify a non-negative timeout value in milliseconds\n", e.getMessage());
156         }
157     }
158
159     @Test
160     public void testSyncBadSyncBadTimeout() throws ParameterException {
161         final String[] args = {"-c", "src/test/resources/parameters/syncBadParamsBadTimeout.json"};
162         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
163
164         try {
165             new ApexParameterHandler().getParameters(arguments);
166             fail("This test should throw an exception");
167         } catch (final ParameterException e) {
168             assertEquals("validation error(s) on parameters from "
169                     + "\"src/test/resources/parameters/syncBadParamsBadTimeout.json\"\n"
170                     + "parameter group \"APEX_PARAMETERS\" type "
171                     + "\"org.onap.policy.apex.service.parameters.ApexParameters\" "
172                     + "INVALID, parameter group has status INVALID\n"
173                     + "  parameter group map \"eventOutputParameters\" INVALID, "
174                     + "parameter group map has status INVALID\n" + "    parameter group \"MyOtherProducer\" type "
175                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" "
176                     + "INVALID, specified peered mode \"SYNCHRONOUS\" "
177                     + "timeout is illegal on eventOutputParameters \"MyOtherProducer\"\n", e.getMessage());
178         }
179     }
180
181     @Test
182     public void testSyncBadSyncUnpairedTimeout() throws ParameterException {
183         final String[] args = {"-c", "src/test/resources/parameters/syncBadParamsUnpairedTimeout.json"};
184         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
185
186         try {
187             new ApexParameterHandler().getParameters(arguments);
188             fail("This test should throw an exception");
189         } catch (final ParameterException e) {
190             assertEquals(
191                     "validation error(s) on parameters from "
192                             + "\"src/test/resources/parameters/syncBadParamsUnpairedTimeout.json\"\n"
193                             + "parameter group \"APEX_PARAMETERS\" type "
194                             + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, "
195                             + "parameter group has status INVALID\n"
196                             + "  parameter group map \"eventOutputParameters\" INVALID, "
197                             + "parameter group map has status INVALID\n" + "    parameter group \"SyncProducer0\" type "
198                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
199                             + ", peer \"SyncConsumer0 for peered mode SYNCHRONOUS timeout 10 on event handler "
200                             + "\"SyncProducer0\" does not equal timeout 1 on event handler \"SyncConsumer0\"\n"
201                             + "    parameter group \"SyncProducer1\" type "
202                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
203                             + ", peer \"SyncConsumer1 for peered mode SYNCHRONOUS timeout 3 on event handler "
204                             + "\"SyncProducer1\" does not equal timeout 99999999 on event handler \"SyncConsumer1\"\n"
205                             + "  parameter group map \"eventInputParameters\" INVALID, "
206                             + "parameter group map has status INVALID\n" + "    parameter group \"SyncConsumer0\" type "
207                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
208                             + ", peer \"SyncProducer0 for peered mode SYNCHRONOUS timeout 1 on event handler "
209                             + "\"SyncConsumer0\" does not equal timeout 10 on event handler \"SyncProducer0\"\n"
210                             + "    parameter group \"SyncConsumer1\" type "
211                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
212                             + ", peer \"SyncProducer1 for peered mode SYNCHRONOUS timeout 99999999 on event handler "
213                             + "\"SyncConsumer1\" does not equal timeout 3 on event handler \"SyncProducer1\"\n" + "",
214                     e.getMessage());
215         }
216     }
217
218     @Test
219     public void testSyncGoodSyncGoodTimeoutProducer() throws ParameterException {
220         final String[] args = {"-c", "src/test/resources/parameters/syncGoodParamsProducerTimeout.json"};
221         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
222
223         try {
224             final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
225             assertEquals(12345, parameters.getEventInputParameters().get("SyncConsumer0")
226                     .getPeerTimeout(EventHandlerPeeredMode.SYNCHRONOUS));
227             assertEquals(1, parameters.getEventInputParameters().get("SyncConsumer1")
228                     .getPeerTimeout(EventHandlerPeeredMode.SYNCHRONOUS));
229             assertEquals(12345, parameters.getEventOutputParameters().get("SyncProducer0")
230                     .getPeerTimeout(EventHandlerPeeredMode.SYNCHRONOUS));
231             assertEquals(1, parameters.getEventOutputParameters().get("SyncProducer1")
232                     .getPeerTimeout(EventHandlerPeeredMode.SYNCHRONOUS));
233         } catch (final Exception e) {
234             fail("This test should not throw an exception");
235         }
236     }
237
238     @Test
239     public void testSyncGoodSyncGoodTimeoutConsumer() throws ParameterException {
240         final String[] args = {"-c", "src/test/resources/parameters/syncGoodParamsConsumerTimeout.json"};
241         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
242
243         try {
244             final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
245             assertEquals(12345, parameters.getEventInputParameters().get("SyncConsumer0")
246                     .getPeerTimeout(EventHandlerPeeredMode.SYNCHRONOUS));
247             assertEquals(1, parameters.getEventInputParameters().get("SyncConsumer1")
248                     .getPeerTimeout(EventHandlerPeeredMode.SYNCHRONOUS));
249             assertEquals(12345, parameters.getEventOutputParameters().get("SyncProducer0")
250                     .getPeerTimeout(EventHandlerPeeredMode.SYNCHRONOUS));
251             assertEquals(1, parameters.getEventOutputParameters().get("SyncProducer1")
252                     .getPeerTimeout(EventHandlerPeeredMode.SYNCHRONOUS));
253         } catch (final Exception e) {
254             fail("This test should not throw an exception");
255         }
256     }
257
258     @Test
259     public void testSyncGoodSyncGoodTimeoutBoth() throws ParameterException {
260         final String[] args = {"-c", "src/test/resources/parameters/syncGoodParamsBothTimeout.json"};
261         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
262
263         try {
264             final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
265             assertEquals(12345, parameters.getEventInputParameters().get("SyncConsumer0")
266                     .getPeerTimeout(EventHandlerPeeredMode.SYNCHRONOUS));
267             assertEquals(1, parameters.getEventInputParameters().get("SyncConsumer1")
268                     .getPeerTimeout(EventHandlerPeeredMode.SYNCHRONOUS));
269             assertEquals(12345, parameters.getEventOutputParameters().get("SyncProducer0")
270                     .getPeerTimeout(EventHandlerPeeredMode.SYNCHRONOUS));
271             assertEquals(1, parameters.getEventOutputParameters().get("SyncProducer1")
272                     .getPeerTimeout(EventHandlerPeeredMode.SYNCHRONOUS));
273         } catch (final Exception e) {
274             fail("This test should not throw an exception");
275         }
276     }
277
278     @Test
279     public void testSyncUnusedConsumerPeers() throws ParameterException {
280         final String[] args = {"-c", "src/test/resources/parameters/syncUnusedConsumerPeers.json"};
281         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
282
283         try {
284             new ApexParameterHandler().getParameters(arguments);
285             fail("This test should throw an exception");
286         } catch (final ParameterException e) {
287             assertEquals("validation error(s) on parameters from "
288                     + "\"src/test/resources/parameters/syncUnusedConsumerPeers.json\"\n"
289                     + "parameter group \"APEX_PARAMETERS\" type "
290                     + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, "
291                     + "parameter group has status INVALID\n"
292                     + "  parameter group map \"eventOutputParameters\" INVALID, "
293                     + "parameter group map has status INVALID\n" + "    parameter group \"SyncProducer1\" type "
294                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" "
295                     + "INVALID, peer \"SyncConsumer0 for peered mode SYNCHRONOUS, "
296                     + "value \"SyncProducer0\" on peer \"SyncConsumer0\" "
297                     + "does not equal event handler \"SyncProducer1\"\n"
298                     + "  parameter group map \"eventInputParameters\" INVALID, "
299                     + "parameter group map has status INVALID\n" + "    parameter group \"SyncConsumer1\" type "
300                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" "
301                     + "INVALID, peer \"SyncProducer1 for peered mode SYNCHRONOUS, "
302                     + "value \"SyncConsumer0\" on peer \"SyncProducer1\" "
303                     + "does not equal event handler \"SyncConsumer1\"\n", e.getMessage());
304         }
305     }
306
307     @Test
308     public void testSyncMismatchedPeers() throws ParameterException {
309         final String[] args = {"-c", "src/test/resources/parameters/syncMismatchedPeers.json"};
310         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
311
312         try {
313             new ApexParameterHandler().getParameters(arguments);
314             fail("This test should throw an exception");
315         } catch (final ParameterException e) {
316             assertEquals(
317                     "validation error(s) on parameters from "
318                             + "\"src/test/resources/parameters/syncMismatchedPeers.json\"\n"
319                             + "parameter group \"APEX_PARAMETERS\" type "
320                             + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, "
321                             + "parameter group has status INVALID\n"
322                             + "  parameter group map \"eventOutputParameters\" INVALID, "
323                             + "parameter group map has status INVALID\n" + "    parameter group \"SyncProducer0\" type "
324                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
325                             + ", peer \"SyncConsumer1 for peered mode SYNCHRONOUS, value \"SyncProducer1\" "
326                             + "on peer \"SyncConsumer1\" does not equal event handler \"SyncProducer0\"\n"
327                             + "    parameter group \"SyncProducer1\" type "
328                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
329                             + ", peer \"SyncConsumer0 for peered mode SYNCHRONOUS, value \"SyncProducer0\" "
330                             + "on peer \"SyncConsumer0\" does not equal event handler \"SyncProducer1\"\n"
331                             + "  parameter group map \"eventInputParameters\" INVALID, "
332                             + "parameter group map has status INVALID\n" + "    parameter group \"SyncConsumer0\" type "
333                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
334                             + ", peer \"SyncProducer0 for peered mode SYNCHRONOUS, value \"SyncConsumer1\" "
335                             + "on peer \"SyncProducer0\" does not equal event handler \"SyncConsumer0\"\n"
336                             + "    parameter group \"SyncConsumer1\" type "
337                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
338                             + ", peer \"SyncProducer1 for peered mode SYNCHRONOUS, value \"SyncConsumer0\" "
339                             + "on peer \"SyncProducer1\" does not equal event handler \"SyncConsumer1\"\n",
340                     e.getMessage());
341         }
342     }
343
344     @Test
345     public void testSyncUnusedProducerPeers() throws ParameterException {
346         final String[] args = {"-c", "src/test/resources/parameters/syncUnusedProducerPeers.json"};
347         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
348
349         try {
350             new ApexParameterHandler().getParameters(arguments);
351             fail("This test should throw an exception");
352         } catch (final ParameterException e) {
353             assertEquals("validation error(s) on parameters from "
354                     + "\"src/test/resources/parameters/syncUnusedProducerPeers.json\"\n"
355                     + "parameter group \"APEX_PARAMETERS\" type "
356                     + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, "
357                     + "parameter group has status INVALID\n"
358                     + "  parameter group map \"eventOutputParameters\" INVALID, "
359                     + "parameter group map has status INVALID\n" + "    parameter group \"SyncProducer0\" type "
360                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
361                     + ", peer \"SyncConsumer0 for peered mode SYNCHRONOUS, value \"SyncProducer1\" on peer "
362                     + "\"SyncConsumer0\" does not equal event handler \"SyncProducer0\"\n"
363                     + "  parameter group map \"eventInputParameters\" INVALID, parameter group map has status "
364                     + "INVALID\n    parameter group \"SyncConsumer0\" type "
365                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
366                     + ", peer \"SyncProducer1 for peered mode SYNCHRONOUS, value \"SyncConsumer1\" on peer "
367                     + "\"SyncProducer1\" does not equal event handler \"SyncConsumer0\"\n", e.getMessage());
368         }
369     }
370
371     @Test
372     public void testSyncMismatchedTimeout() throws ParameterException {
373         final String[] args = {"-c", "src/test/resources/parameters/syncMismatchedTimeout.json"};
374         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
375
376         try {
377             new ApexParameterHandler().getParameters(arguments);
378             fail("This test should throw an exception");
379         } catch (final ParameterException e) {
380             assertEquals("validation error(s) on parameters from "
381                     + "\"src/test/resources/parameters/syncMismatchedTimeout.json\"\n"
382                     + "parameter group \"APEX_PARAMETERS\" type "
383                     + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, "
384                     + "parameter group has status INVALID\n" + "  parameter group map \"eventOutputParameters\" "
385                     + "INVALID, parameter group map has status INVALID\n"
386                     + "    parameter group \"SyncProducer1\" type "
387                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID,"
388                     + " peer \"SyncConsumer1 for peered mode SYNCHRONOUS timeout 456 "
389                     + "on event handler \"SyncProducer1\" does not equal timeout 123 "
390                     + "on event handler \"SyncConsumer1\"\n"
391                     + "  parameter group map \"eventInputParameters\" INVALID, "
392                     + "parameter group map has status INVALID\n" + "    parameter group \"SyncConsumer1\" type "
393                     + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID,"
394                     + " peer \"SyncProducer1 for peered mode SYNCHRONOUS timeout 123 "
395                     + "on event handler \"SyncConsumer1\" does not equal timeout 456 "
396                     + "on event handler \"SyncProducer1\"\n", e.getMessage());
397         }
398     }
399
400     @Test
401     public void testSyncGoodParametersTest() {
402         final String[] args = {"-c", "src/test/resources/parameters/syncGoodParams.json"};
403         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
404
405         try {
406             final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
407
408             assertEquals("MyApexEngine", parameters.getEngineServiceParameters().getName());
409             assertEquals("0.0.1", parameters.getEngineServiceParameters().getVersion());
410             assertEquals(45, parameters.getEngineServiceParameters().getId());
411             assertEquals(19, parameters.getEngineServiceParameters().getInstanceCount());
412             assertEquals(65522, parameters.getEngineServiceParameters().getDeploymentPort());
413
414             final CarrierTechnologyParameters prodCT0 =
415                     parameters.getEventOutputParameters().get("SyncProducer0").getCarrierTechnologyParameters();
416             final EventProtocolParameters prodEP0 =
417                     parameters.getEventOutputParameters().get("SyncProducer0").getEventProtocolParameters();
418             final CarrierTechnologyParameters consCT0 =
419                     parameters.getEventInputParameters().get("SyncConsumer0").getCarrierTechnologyParameters();
420             final EventProtocolParameters consEP0 =
421                     parameters.getEventInputParameters().get("SyncConsumer0").getEventProtocolParameters();
422             final CarrierTechnologyParameters prodCT1 =
423                     parameters.getEventOutputParameters().get("SyncProducer1").getCarrierTechnologyParameters();
424             final EventProtocolParameters prodEP1 =
425                     parameters.getEventOutputParameters().get("SyncProducer1").getEventProtocolParameters();
426             final CarrierTechnologyParameters consCT1 =
427                     parameters.getEventInputParameters().get("SyncConsumer1").getCarrierTechnologyParameters();
428             final EventProtocolParameters consEP1 =
429                     parameters.getEventInputParameters().get("SyncConsumer1").getEventProtocolParameters();
430
431             assertEquals("FILE", prodCT0.getLabel());
432             assertEquals("JSON", prodEP0.getLabel());
433             assertEquals("FILE", consCT0.getLabel());
434             assertEquals("JSON", consEP0.getLabel());
435             assertEquals("FILE", prodCT1.getLabel());
436             assertEquals("JSON", prodEP1.getLabel());
437             assertEquals("SUPER_DOOPER", consCT1.getLabel());
438             assertEquals("SUPER_TOK_DEL", consEP1.getLabel());
439
440             assertTrue(consCT1 instanceof SuperDooperCarrierTechnologyParameters);
441             assertTrue(consEP1 instanceof SuperTokenDelimitedEventProtocolParameters);
442
443             final SuperDooperCarrierTechnologyParameters superDooperParameters =
444                     (SuperDooperCarrierTechnologyParameters) consCT1;
445             assertEquals("localhost:9092", superDooperParameters.getBootstrapServers());
446             assertEquals("all", superDooperParameters.getAcks());
447             assertEquals(0, superDooperParameters.getRetries());
448             assertEquals(16384, superDooperParameters.getBatchSize());
449             assertEquals(1, superDooperParameters.getLingerTime());
450             assertEquals(33554432, superDooperParameters.getBufferMemory());
451             assertEquals("default-group-id", superDooperParameters.getGroupId());
452             assertTrue(superDooperParameters.isEnableAutoCommit());
453             assertEquals(1000, superDooperParameters.getAutoCommitTime());
454             assertEquals(30000, superDooperParameters.getSessionTimeout());
455             assertEquals("apex-out", superDooperParameters.getProducerTopic());
456             assertEquals(100, superDooperParameters.getConsumerPollTime());
457             assertEquals("org.apache.superDooper.common.serialization.StringSerializer",
458                     superDooperParameters.getKeySerializer());
459             assertEquals("org.apache.superDooper.common.serialization.StringSerializer",
460                     superDooperParameters.getValueSerializer());
461             assertEquals("org.apache.superDooper.common.serialization.StringDeserializer",
462                     superDooperParameters.getKeyDeserializer());
463             assertEquals("org.apache.superDooper.common.serialization.StringDeserializer",
464                     superDooperParameters.getValueDeserializer());
465
466             final String[] consumerTopics = {"apex-in"};
467             assertEquals(Arrays.asList(consumerTopics), superDooperParameters.getConsumerTopicList());
468         } catch (final ParameterException e) {
469             fail("This test should not throw an exception");
470         }
471     }
472 }