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