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