1c291786f69c86c376a6d0d1e9a2cf6433e05174
[policy/apex-pdp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  * 
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  * 
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  * 
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.apex.service.engine.parameters;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertTrue;
25 import static org.junit.Assert.fail;
26
27 import java.util.Arrays;
28
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 syncBadNoSyncWithPeer() 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 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 syncBadNotSyncWithPeer() 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 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 syncBadSyncBadPeers() 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 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"
109                             + "    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 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"
118                             + "    parameter group \"SyncConsumer1\" type "
119                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID"
120                             + ", peer \"SyncConsumer0 for peered mode SYNCHRONOUS does not exist "
121                             + "or is not defined with the same peered mode\n", e.getMessage());
122         }
123     }
124
125     @Test
126     public void syncBadSyncInvalidTimeout() throws ParameterException {
127         final String[] args = { "-c", "src/test/resources/parameters/syncBadParamsInvalidTimeout.json" };
128         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
129
130         try {
131             new ApexParameterHandler().getParameters(arguments);
132             fail("This test should throw an exception");
133         } catch (final ParameterException e) {
134             assertEquals("validation error(s) on parameters from "
135                             + "\"src/test/resources/parameters/syncBadParamsInvalidTimeout.json\"\n"
136                             + "parameter group \"APEX_PARAMETERS\" type "
137                             + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, "
138                             + "parameter group has status INVALID\n"
139                             + "  parameter group map \"eventOutputParameters\" INVALID, "
140                             + "parameter group has status INVALID\n" + "    parameter group \"SyncProducer0\" type "
141                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID,"
142                             + " specified peered mode \"SYNCHRONOUS\" timeout value \"-10\" is illegal, "
143                             + "specify a non-negative timeout value in milliseconds\n"
144                             + "    parameter group \"SyncProducer1\" type "
145                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" "
146                             + "INVALID, specified peered mode \"SYNCHRONOUS\" timeout value \"-3\" is illegal, "
147                             + "specify a non-negative timeout value in milliseconds\n"
148                             + "  parameter group map \"eventInputParameters\" INVALID, parameter group has status INVALID\n"
149                             + "    parameter group \"SyncConsumer0\" type "
150                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID, "
151                             + "specified peered mode \"SYNCHRONOUS\" timeout value \"-1\" is illegal, "
152                             + "specify a non-negative timeout value in milliseconds\n"
153                             + "    parameter group \"SyncConsumer1\" type "
154                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID,"
155                             + " specified peered mode \"SYNCHRONOUS\" timeout value \"-99999999\" is illegal, "
156                             + "specify a non-negative timeout value in milliseconds\n", e.getMessage());
157         }
158     }
159
160     @Test
161     public void syncBadSyncBadTimeout() throws ParameterException {
162         final String[] args = { "-c", "src/test/resources/parameters/syncBadParamsBadTimeout.json" };
163         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
164
165         try {
166             new ApexParameterHandler().getParameters(arguments);
167             fail("This test should throw an exception");
168         } catch (final ParameterException e) {
169             assertEquals("validation error(s) on parameters from "
170                             + "\"src/test/resources/parameters/syncBadParamsBadTimeout.json\"\n"
171                             + "parameter group \"APEX_PARAMETERS\" type "
172                             + "\"org.onap.policy.apex.service.parameters.ApexParameters\" "
173                             + "INVALID, parameter group has status INVALID\n"
174                             + "  parameter group map \"eventOutputParameters\" INVALID, "
175                             + "parameter group has status INVALID\n" + "    parameter group \"MyOtherProducer\" type "
176                             + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" "
177                             + "INVALID, specified peered mode \"SYNCHRONOUS\" "
178                             + "timeout is illegal on eventOutputParameters \"MyOtherProducer\"\n", e.getMessage());
179         }
180     }
181
182     @Test
183     public void syncBadSyncUnpairedTimeout() throws ParameterException {
184         final String[] args = { "-c", "src/test/resources/parameters/syncBadParamsUnpairedTimeout.json" };
185         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
186
187         try {
188             new ApexParameterHandler().getParameters(arguments);
189             fail("This test should throw an exception");
190         } catch (final ParameterException e) {
191             assertEquals("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 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 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 syncGoodSyncGoodTimeoutProducer() 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 syncGoodSyncGoodTimeoutConsumer() 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 syncGoodSyncGoodTimeoutBoth() 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 syncUnusedConsumerPeers() 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 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 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 syncMismatchedPeers() 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("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 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 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 syncUnusedProducerPeers() 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 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 has status INVALID\n"
363                             + "    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 syncMismatchedTimeout() 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"
384                             + "  parameter group map \"eventOutputParameters\" "
385                             + "INVALID, parameter group 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 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 syncGoodParametersTest() {
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 = parameters.getEventOutputParameters().get("SyncProducer0")
415                             .getCarrierTechnologyParameters();
416             final EventProtocolParameters prodEP0 = parameters.getEventOutputParameters().get("SyncProducer0")
417                             .getEventProtocolParameters();
418             final CarrierTechnologyParameters consCT0 = parameters.getEventInputParameters().get("SyncConsumer0")
419                             .getCarrierTechnologyParameters();
420             final EventProtocolParameters consEP0 = parameters.getEventInputParameters().get("SyncConsumer0")
421                             .getEventProtocolParameters();
422             final CarrierTechnologyParameters prodCT1 = parameters.getEventOutputParameters().get("SyncProducer1")
423                             .getCarrierTechnologyParameters();
424             final EventProtocolParameters prodEP1 = parameters.getEventOutputParameters().get("SyncProducer1")
425                             .getEventProtocolParameters();
426             final CarrierTechnologyParameters consCT1 = parameters.getEventInputParameters().get("SyncConsumer1")
427                             .getCarrierTechnologyParameters();
428             final EventProtocolParameters consEP1 = parameters.getEventInputParameters().get("SyncConsumer1")
429                             .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 = (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 }