91SCENARIO(
"outletController Configuration",
"[outletController]" )
93 GIVEN(
"a config file with 4 channels for 4 outlets")
95 WHEN(
"using outlet keyword, only outlet specified")
97 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel2",
"channel3",
"channel4"},
98 {
"outlet",
"outlet",
"outlet",
"outlet"},
99 {
"0",
"1",
"2",
"3"} );
101 mx::app::appConfigurator config;
102 config.readConfig(
"/tmp/outletController_test.conf");
113 std::vector<size_t> outlets, onOrder, offOrder;
114 std::vector<unsigned> onDelays, offDelays;
116 REQUIRE( outlets.size() == 1);
117 REQUIRE( outlets[0] == 0 );
120 REQUIRE( onOrder.size() == 0);
122 REQUIRE( offOrder.size() == 0);
124 REQUIRE( onDelays.size() == 0);
126 REQUIRE( offDelays.size() == 0);
129 REQUIRE( outlets.size() == 1);
130 REQUIRE( outlets[0] == 1 );
133 REQUIRE( onOrder.size() == 0);
135 REQUIRE( offOrder.size() == 0);
137 REQUIRE( onDelays.size() == 0);
139 REQUIRE( offDelays.size() == 0);
142 REQUIRE( outlets.size() == 1);
143 REQUIRE( outlets[0] == 2 );
146 REQUIRE( onOrder.size() == 0);
148 REQUIRE( offOrder.size() == 0);
150 REQUIRE( onDelays.size() == 0);
152 REQUIRE( offDelays.size() == 0);
155 REQUIRE( outlets.size() == 1);
156 REQUIRE( outlets[0] == 3 );
159 REQUIRE( onOrder.size() == 0);
161 REQUIRE( offOrder.size() == 0);
163 REQUIRE( onDelays.size() == 0);
165 REQUIRE( offDelays.size() == 0);
169 WHEN(
"using outlet keyword, all specified")
171 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel1",
"channel1",
"channel1",
"channel1",
"channel2",
"channel2",
"channel2",
"channel2",
"channel2",
"channel3",
"channel3",
"channel3",
"channel3",
"channel3",
"channel4",
"channel4",
"channel4",
"channel4",
"channel4" },
172 {
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays" },
173 {
"0",
"0",
"0",
"100",
"120",
"1",
"0",
"0",
"105",
"130",
"2",
"0",
"0",
"107",
"132",
"3",
"0",
"0",
"108",
"133"});
175 mx::app::appConfigurator config;
176 config.readConfig(
"/tmp/outletController_test.conf");
187 std::vector<size_t> outlets, onOrder, offOrder;
188 std::vector<unsigned> onDelays, offDelays;
191 REQUIRE( outlets.size() == 1);
192 REQUIRE( outlets[0] == 0 );
195 REQUIRE( onOrder.size() == 1);
196 REQUIRE( onOrder[0] == 0);
198 REQUIRE( offOrder.size() == 1);
199 REQUIRE( offOrder[0] == 0);
201 REQUIRE( onDelays.size() == 1);
202 REQUIRE( onDelays[0] == 100);
204 REQUIRE( offDelays.size() == 1);
205 REQUIRE( offDelays[0] == 120);
208 REQUIRE( outlets.size() == 1);
209 REQUIRE( outlets[0] == 1 );
212 REQUIRE( onOrder.size() == 1);
213 REQUIRE( onOrder[0] == 0);
215 REQUIRE( offOrder.size() == 1);
216 REQUIRE( offOrder[0] == 0);
218 REQUIRE( onDelays.size() == 1);
219 REQUIRE( onDelays[0] == 105);
221 REQUIRE( offDelays.size() == 1);
222 REQUIRE( offDelays[0] == 130);
225 REQUIRE( outlets.size() == 1);
226 REQUIRE( outlets[0] == 2 );
229 REQUIRE( onOrder.size() == 1);
230 REQUIRE( onOrder[0] == 0);
232 REQUIRE( offOrder.size() == 1);
233 REQUIRE( offOrder[0] == 0);
235 REQUIRE( onDelays.size() == 1);
236 REQUIRE( onDelays[0] == 107);
238 REQUIRE( offDelays.size() == 1);
239 REQUIRE( offDelays[0] == 132);
242 REQUIRE( outlets.size() == 1);
243 REQUIRE( outlets[0] == 3 );
246 REQUIRE( onOrder.size() == 1);
247 REQUIRE( onOrder[0] == 0);
249 REQUIRE( offOrder.size() == 1);
250 REQUIRE( offOrder[0] == 0);
252 REQUIRE( onDelays.size() == 1);
253 REQUIRE( onDelays[0] == 108);
255 REQUIRE( offDelays.size() == 1);
256 REQUIRE( offDelays[0] == 133);
259 WHEN(
"using outlets keyword, only outlet specified")
261 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel2",
"channel3",
"channel4"},
262 {
"outlets",
"outlets",
"outlets",
"outlets"},
263 {
"0",
"1",
"2",
"3"} );
265 mx::app::appConfigurator config;
266 config.readConfig(
"/tmp/outletController_test.conf");
277 std::vector<size_t> outlets, onOrder, offOrder;
278 std::vector<unsigned> onDelays, offDelays;
280 REQUIRE( outlets.size() == 1);
281 REQUIRE( outlets[0] == 0 );
284 REQUIRE( onOrder.size() == 0);
286 REQUIRE( offOrder.size() == 0);
288 REQUIRE( onDelays.size() == 0);
290 REQUIRE( offDelays.size() == 0);
293 REQUIRE( outlets.size() == 1);
294 REQUIRE( outlets[0] == 1 );
297 REQUIRE( onOrder.size() == 0);
299 REQUIRE( offOrder.size() == 0);
301 REQUIRE( onDelays.size() == 0);
303 REQUIRE( offDelays.size() == 0);
306 REQUIRE( outlets.size() == 1);
307 REQUIRE( outlets[0] == 2 );
310 REQUIRE( onOrder.size() == 0);
312 REQUIRE( offOrder.size() == 0);
314 REQUIRE( onDelays.size() == 0);
316 REQUIRE( offDelays.size() == 0);
319 REQUIRE( outlets.size() == 1);
320 REQUIRE( outlets[0] == 3 );
323 REQUIRE( onOrder.size() == 0);
325 REQUIRE( offOrder.size() == 0);
327 REQUIRE( onDelays.size() == 0);
329 REQUIRE( offDelays.size() == 0);
332 WHEN(
"using outlets keyword, all specified")
334 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel1",
"channel1",
"channel1",
"channel1",
"channel2",
"channel2",
"channel2",
"channel2",
"channel2",
"channel3",
"channel3",
"channel3",
"channel3",
"channel3",
"channel4",
"channel4",
"channel4",
"channel4",
"channel4" },
335 {
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays" },
336 {
"0",
"0",
"0",
"100",
"120",
"1",
"0",
"0",
"105",
"130",
"2",
"0",
"0",
"107",
"132",
"3",
"0",
"0",
"108",
"133"});
338 mx::app::appConfigurator config;
339 config.readConfig(
"/tmp/outletController_test.conf");
350 std::vector<size_t> outlets, onOrder, offOrder;
351 std::vector<unsigned> onDelays, offDelays;
354 REQUIRE( outlets.size() == 1);
355 REQUIRE( outlets[0] == 0 );
358 REQUIRE( onOrder.size() == 1);
359 REQUIRE( onOrder[0] == 0);
361 REQUIRE( offOrder.size() == 1);
362 REQUIRE( offOrder[0] == 0);
364 REQUIRE( onDelays.size() == 1);
365 REQUIRE( onDelays[0] == 100);
367 REQUIRE( offDelays.size() == 1);
368 REQUIRE( offDelays[0] == 120);
371 REQUIRE( outlets.size() == 1);
372 REQUIRE( outlets[0] == 1 );
375 REQUIRE( onOrder.size() == 1);
376 REQUIRE( onOrder[0] == 0);
378 REQUIRE( offOrder.size() == 1);
379 REQUIRE( offOrder[0] == 0);
381 REQUIRE( onDelays.size() == 1);
382 REQUIRE( onDelays[0] == 105);
384 REQUIRE( offDelays.size() == 1);
385 REQUIRE( offDelays[0] == 130);
388 REQUIRE( outlets.size() == 1);
389 REQUIRE( outlets[0] == 2 );
392 REQUIRE( onOrder.size() == 1);
393 REQUIRE( onOrder[0] == 0);
395 REQUIRE( offOrder.size() == 1);
396 REQUIRE( offOrder[0] == 0);
398 REQUIRE( onDelays.size() == 1);
399 REQUIRE( onDelays[0] == 107);
401 REQUIRE( offDelays.size() == 1);
402 REQUIRE( offDelays[0] == 132);
405 REQUIRE( outlets.size() == 1);
406 REQUIRE( outlets[0] == 3 );
409 REQUIRE( onOrder.size() == 1);
410 REQUIRE( onOrder[0] == 0);
412 REQUIRE( offOrder.size() == 1);
413 REQUIRE( offOrder[0] == 0);
415 REQUIRE( onDelays.size() == 1);
416 REQUIRE( onDelays[0] == 108);
418 REQUIRE( offDelays.size() == 1);
419 REQUIRE( offDelays[0] == 133);
423 GIVEN(
"a config file with 2 channels for 4 outlets")
425 WHEN(
"using outlet keyword, only outlet specified")
427 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel2" },
428 {
"outlet",
"outlet" },
431 mx::app::appConfigurator config;
432 config.readConfig(
"/tmp/outletController_test.conf");
443 std::vector<size_t> outlets, onOrder, offOrder;
444 std::vector<unsigned> onDelays, offDelays;
446 REQUIRE( outlets.size() == 2);
447 REQUIRE( outlets[0] == 0 );
448 REQUIRE( outlets[1] == 1 );
451 REQUIRE( onOrder.size() == 0);
453 REQUIRE( offOrder.size() == 0);
455 REQUIRE( onDelays.size() == 0);
457 REQUIRE( offDelays.size() == 0);
460 REQUIRE( outlets.size() == 2);
461 REQUIRE( outlets[0] == 2 );
462 REQUIRE( outlets[1] == 3 );
465 REQUIRE( onOrder.size() == 0);
467 REQUIRE( offOrder.size() == 0);
469 REQUIRE( onDelays.size() == 0);
471 REQUIRE( offDelays.size() == 0);
476 WHEN(
"using outlet keyword, all specified")
478 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel1",
"channel1",
"channel1",
"channel1",
"channel2",
"channel2",
"channel2",
"channel2",
"channel2" },
479 {
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays" },
480 {
"0,1",
"0,1",
"1,0",
"0,105",
"0,107",
"2,3",
"1,0",
"0,1",
"0,106",
"0,108" } );
482 mx::app::appConfigurator config;
483 config.readConfig(
"/tmp/outletController_test.conf");
494 std::vector<size_t> outlets, onOrder, offOrder;
495 std::vector<unsigned> onDelays, offDelays;
497 REQUIRE( outlets.size() == 2);
498 REQUIRE( outlets[0] == 0 );
499 REQUIRE( outlets[1] == 1 );
502 REQUIRE( onOrder.size() == 2);
503 REQUIRE( onOrder[0] == 0 );
504 REQUIRE( onOrder[1] == 1 );
506 REQUIRE( offOrder.size() == 2);
507 REQUIRE( offOrder[0] == 1 );
508 REQUIRE( offOrder[1] == 0 );
510 REQUIRE( onDelays.size() == 2);
511 REQUIRE( onDelays[0] == 0 );
512 REQUIRE( onDelays[1] == 105 );
514 REQUIRE( offDelays.size() == 2);
515 REQUIRE( offDelays[0] == 0 );
516 REQUIRE( offDelays[1] == 107 );
519 REQUIRE( outlets.size() == 2);
520 REQUIRE( outlets[0] == 2 );
521 REQUIRE( outlets[1] == 3 );
524 REQUIRE( onOrder.size() == 2);
525 REQUIRE( onOrder[0] == 1 );
526 REQUIRE( onOrder[1] == 0 );
528 REQUIRE( offOrder.size() == 2);
529 REQUIRE( offOrder[0] == 0 );
530 REQUIRE( offOrder[1] == 1 );
532 REQUIRE( onDelays.size() == 2);
533 REQUIRE( onDelays[0] == 0 );
534 REQUIRE( onDelays[1] == 106 );
536 REQUIRE( offDelays.size() == 2);
537 REQUIRE( offDelays[0] == 0 );
538 REQUIRE( offDelays[1] == 108 );
541 WHEN(
"using outlets keyword, only outlet specified")
543 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel2" },
544 {
"outlets",
"outlets" },
547 mx::app::appConfigurator config;
548 config.readConfig(
"/tmp/outletController_test.conf");
559 std::vector<size_t> outlets, onOrder, offOrder;
560 std::vector<unsigned> onDelays, offDelays;
562 REQUIRE( outlets.size() == 2);
563 REQUIRE( outlets[0] == 0 );
564 REQUIRE( outlets[1] == 1 );
567 REQUIRE( onOrder.size() == 0);
569 REQUIRE( offOrder.size() == 0);
571 REQUIRE( onDelays.size() == 0);
573 REQUIRE( offDelays.size() == 0);
577 REQUIRE( outlets.size() == 2);
578 REQUIRE( outlets[0] == 2 );
579 REQUIRE( outlets[1] == 3 );
582 REQUIRE( onOrder.size() == 0);
584 REQUIRE( offOrder.size() == 0);
586 REQUIRE( onDelays.size() == 0);
588 REQUIRE( offDelays.size() == 0);
591 WHEN(
"using outlets keyword, all specified")
593 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel1",
"channel1",
"channel1",
"channel1",
"channel2",
"channel2",
"channel2",
"channel2",
"channel2" },
594 {
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays" },
595 {
"0,2",
"0,1",
"1,0",
"0,105",
"0,107",
"1,3",
"1,0",
"0,1",
"0,106",
"0,108" } );
597 mx::app::appConfigurator config;
598 config.readConfig(
"/tmp/outletController_test.conf");
609 std::vector<size_t> outlets, onOrder, offOrder;
610 std::vector<unsigned> onDelays, offDelays;
612 REQUIRE( outlets.size() == 2);
613 REQUIRE( outlets[0] == 0 );
614 REQUIRE( outlets[1] == 2 );
617 REQUIRE( onOrder.size() == 2);
618 REQUIRE( onOrder[0] == 0 );
619 REQUIRE( onOrder[1] == 1 );
621 REQUIRE( offOrder.size() == 2);
622 REQUIRE( offOrder[0] == 1 );
623 REQUIRE( offOrder[1] == 0 );
625 REQUIRE( onDelays.size() == 2);
626 REQUIRE( onDelays[0] == 0 );
627 REQUIRE( onDelays[1] == 105 );
629 REQUIRE( offDelays.size() == 2);
630 REQUIRE( offDelays[0] == 0 );
631 REQUIRE( offDelays[1] == 107 );
634 REQUIRE( outlets.size() == 2);
635 REQUIRE( outlets[0] == 1 );
636 REQUIRE( outlets[1] == 3 );
639 REQUIRE( onOrder.size() == 2);
640 REQUIRE( onOrder[0] == 1 );
641 REQUIRE( onOrder[1] == 0 );
643 REQUIRE( offOrder.size() == 2);
644 REQUIRE( offOrder[0] == 0 );
645 REQUIRE( offOrder[1] == 1 );
647 REQUIRE( onDelays.size() == 2);
648 REQUIRE( onDelays[0] == 0 );
649 REQUIRE( onDelays[1] == 106 );
651 REQUIRE( offDelays.size() == 2);
652 REQUIRE( offDelays[0] == 0 );
653 REQUIRE( offDelays[1] == 108 );