54SCENARIO(
"outletController Configuration",
"[outletController]" )
56 GIVEN(
"a config file with 4 channels for 4 outlets")
58 WHEN(
"using outlet keyword, only outlet specified")
60 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel2",
"channel3",
"channel4"},
61 {
"outlet",
"outlet",
"outlet",
"outlet"},
62 {
"0",
"1",
"2",
"3"} );
64 mx::app::appConfigurator config;
65 config.readConfig(
"/tmp/outletController_test.conf");
76 std::vector<size_t> outlets, onOrder, offOrder;
77 std::vector<unsigned> onDelays, offDelays;
79 REQUIRE( outlets.size() == 1);
80 REQUIRE( outlets[0] == 0 );
83 REQUIRE( onOrder.size() == 0);
85 REQUIRE( offOrder.size() == 0);
87 REQUIRE( onDelays.size() == 0);
89 REQUIRE( offDelays.size() == 0);
92 REQUIRE( outlets.size() == 1);
93 REQUIRE( outlets[0] == 1 );
96 REQUIRE( onOrder.size() == 0);
98 REQUIRE( offOrder.size() == 0);
100 REQUIRE( onDelays.size() == 0);
102 REQUIRE( offDelays.size() == 0);
105 REQUIRE( outlets.size() == 1);
106 REQUIRE( outlets[0] == 2 );
109 REQUIRE( onOrder.size() == 0);
111 REQUIRE( offOrder.size() == 0);
113 REQUIRE( onDelays.size() == 0);
115 REQUIRE( offDelays.size() == 0);
118 REQUIRE( outlets.size() == 1);
119 REQUIRE( outlets[0] == 3 );
122 REQUIRE( onOrder.size() == 0);
124 REQUIRE( offOrder.size() == 0);
126 REQUIRE( onDelays.size() == 0);
128 REQUIRE( offDelays.size() == 0);
132 WHEN(
"using outlet keyword, all specified")
134 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" },
135 {
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays" },
136 {
"0",
"0",
"0",
"100",
"120",
"1",
"0",
"0",
"105",
"130",
"2",
"0",
"0",
"107",
"132",
"3",
"0",
"0",
"108",
"133"});
138 mx::app::appConfigurator config;
139 config.readConfig(
"/tmp/outletController_test.conf");
150 std::vector<size_t> outlets, onOrder, offOrder;
151 std::vector<unsigned> onDelays, offDelays;
154 REQUIRE( outlets.size() == 1);
155 REQUIRE( outlets[0] == 0 );
158 REQUIRE( onOrder.size() == 1);
159 REQUIRE( onOrder[0] == 0);
161 REQUIRE( offOrder.size() == 1);
162 REQUIRE( offOrder[0] == 0);
164 REQUIRE( onDelays.size() == 1);
165 REQUIRE( onDelays[0] == 100);
167 REQUIRE( offDelays.size() == 1);
168 REQUIRE( offDelays[0] == 120);
171 REQUIRE( outlets.size() == 1);
172 REQUIRE( outlets[0] == 1 );
175 REQUIRE( onOrder.size() == 1);
176 REQUIRE( onOrder[0] == 0);
178 REQUIRE( offOrder.size() == 1);
179 REQUIRE( offOrder[0] == 0);
181 REQUIRE( onDelays.size() == 1);
182 REQUIRE( onDelays[0] == 105);
184 REQUIRE( offDelays.size() == 1);
185 REQUIRE( offDelays[0] == 130);
188 REQUIRE( outlets.size() == 1);
189 REQUIRE( outlets[0] == 2 );
192 REQUIRE( onOrder.size() == 1);
193 REQUIRE( onOrder[0] == 0);
195 REQUIRE( offOrder.size() == 1);
196 REQUIRE( offOrder[0] == 0);
198 REQUIRE( onDelays.size() == 1);
199 REQUIRE( onDelays[0] == 107);
201 REQUIRE( offDelays.size() == 1);
202 REQUIRE( offDelays[0] == 132);
205 REQUIRE( outlets.size() == 1);
206 REQUIRE( outlets[0] == 3 );
209 REQUIRE( onOrder.size() == 1);
210 REQUIRE( onOrder[0] == 0);
212 REQUIRE( offOrder.size() == 1);
213 REQUIRE( offOrder[0] == 0);
215 REQUIRE( onDelays.size() == 1);
216 REQUIRE( onDelays[0] == 108);
218 REQUIRE( offDelays.size() == 1);
219 REQUIRE( offDelays[0] == 133);
222 WHEN(
"using outlets keyword, only outlet specified")
224 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel2",
"channel3",
"channel4"},
225 {
"outlets",
"outlets",
"outlets",
"outlets"},
226 {
"0",
"1",
"2",
"3"} );
228 mx::app::appConfigurator config;
229 config.readConfig(
"/tmp/outletController_test.conf");
240 std::vector<size_t> outlets, onOrder, offOrder;
241 std::vector<unsigned> onDelays, offDelays;
243 REQUIRE( outlets.size() == 1);
244 REQUIRE( outlets[0] == 0 );
247 REQUIRE( onOrder.size() == 0);
249 REQUIRE( offOrder.size() == 0);
251 REQUIRE( onDelays.size() == 0);
253 REQUIRE( offDelays.size() == 0);
256 REQUIRE( outlets.size() == 1);
257 REQUIRE( outlets[0] == 1 );
260 REQUIRE( onOrder.size() == 0);
262 REQUIRE( offOrder.size() == 0);
264 REQUIRE( onDelays.size() == 0);
266 REQUIRE( offDelays.size() == 0);
269 REQUIRE( outlets.size() == 1);
270 REQUIRE( outlets[0] == 2 );
273 REQUIRE( onOrder.size() == 0);
275 REQUIRE( offOrder.size() == 0);
277 REQUIRE( onDelays.size() == 0);
279 REQUIRE( offDelays.size() == 0);
282 REQUIRE( outlets.size() == 1);
283 REQUIRE( outlets[0] == 3 );
286 REQUIRE( onOrder.size() == 0);
288 REQUIRE( offOrder.size() == 0);
290 REQUIRE( onDelays.size() == 0);
292 REQUIRE( offDelays.size() == 0);
295 WHEN(
"using outlets keyword, all specified")
297 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" },
298 {
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays" },
299 {
"0",
"0",
"0",
"100",
"120",
"1",
"0",
"0",
"105",
"130",
"2",
"0",
"0",
"107",
"132",
"3",
"0",
"0",
"108",
"133"});
301 mx::app::appConfigurator config;
302 config.readConfig(
"/tmp/outletController_test.conf");
313 std::vector<size_t> outlets, onOrder, offOrder;
314 std::vector<unsigned> onDelays, offDelays;
317 REQUIRE( outlets.size() == 1);
318 REQUIRE( outlets[0] == 0 );
321 REQUIRE( onOrder.size() == 1);
322 REQUIRE( onOrder[0] == 0);
324 REQUIRE( offOrder.size() == 1);
325 REQUIRE( offOrder[0] == 0);
327 REQUIRE( onDelays.size() == 1);
328 REQUIRE( onDelays[0] == 100);
330 REQUIRE( offDelays.size() == 1);
331 REQUIRE( offDelays[0] == 120);
334 REQUIRE( outlets.size() == 1);
335 REQUIRE( outlets[0] == 1 );
338 REQUIRE( onOrder.size() == 1);
339 REQUIRE( onOrder[0] == 0);
341 REQUIRE( offOrder.size() == 1);
342 REQUIRE( offOrder[0] == 0);
344 REQUIRE( onDelays.size() == 1);
345 REQUIRE( onDelays[0] == 105);
347 REQUIRE( offDelays.size() == 1);
348 REQUIRE( offDelays[0] == 130);
351 REQUIRE( outlets.size() == 1);
352 REQUIRE( outlets[0] == 2 );
355 REQUIRE( onOrder.size() == 1);
356 REQUIRE( onOrder[0] == 0);
358 REQUIRE( offOrder.size() == 1);
359 REQUIRE( offOrder[0] == 0);
361 REQUIRE( onDelays.size() == 1);
362 REQUIRE( onDelays[0] == 107);
364 REQUIRE( offDelays.size() == 1);
365 REQUIRE( offDelays[0] == 132);
368 REQUIRE( outlets.size() == 1);
369 REQUIRE( outlets[0] == 3 );
372 REQUIRE( onOrder.size() == 1);
373 REQUIRE( onOrder[0] == 0);
375 REQUIRE( offOrder.size() == 1);
376 REQUIRE( offOrder[0] == 0);
378 REQUIRE( onDelays.size() == 1);
379 REQUIRE( onDelays[0] == 108);
381 REQUIRE( offDelays.size() == 1);
382 REQUIRE( offDelays[0] == 133);
386 GIVEN(
"a config file with 2 channels for 4 outlets")
388 WHEN(
"using outlet keyword, only outlet specified")
390 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel2" },
391 {
"outlet",
"outlet" },
394 mx::app::appConfigurator config;
395 config.readConfig(
"/tmp/outletController_test.conf");
406 std::vector<size_t> outlets, onOrder, offOrder;
407 std::vector<unsigned> onDelays, offDelays;
409 REQUIRE( outlets.size() == 2);
410 REQUIRE( outlets[0] == 0 );
411 REQUIRE( outlets[1] == 1 );
414 REQUIRE( onOrder.size() == 0);
416 REQUIRE( offOrder.size() == 0);
418 REQUIRE( onDelays.size() == 0);
420 REQUIRE( offDelays.size() == 0);
423 REQUIRE( outlets.size() == 2);
424 REQUIRE( outlets[0] == 2 );
425 REQUIRE( outlets[1] == 3 );
428 REQUIRE( onOrder.size() == 0);
430 REQUIRE( offOrder.size() == 0);
432 REQUIRE( onDelays.size() == 0);
434 REQUIRE( offDelays.size() == 0);
439 WHEN(
"using outlet keyword, all specified")
441 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel1",
"channel1",
"channel1",
"channel1",
"channel2",
"channel2",
"channel2",
"channel2",
"channel2" },
442 {
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays" },
443 {
"0,1",
"0,1",
"1,0",
"0,105",
"0,107",
"2,3",
"1,0",
"0,1",
"0,106",
"0,108" } );
445 mx::app::appConfigurator config;
446 config.readConfig(
"/tmp/outletController_test.conf");
457 std::vector<size_t> outlets, onOrder, offOrder;
458 std::vector<unsigned> onDelays, offDelays;
460 REQUIRE( outlets.size() == 2);
461 REQUIRE( outlets[0] == 0 );
462 REQUIRE( outlets[1] == 1 );
465 REQUIRE( onOrder.size() == 2);
466 REQUIRE( onOrder[0] == 0 );
467 REQUIRE( onOrder[1] == 1 );
469 REQUIRE( offOrder.size() == 2);
470 REQUIRE( offOrder[0] == 1 );
471 REQUIRE( offOrder[1] == 0 );
473 REQUIRE( onDelays.size() == 2);
474 REQUIRE( onDelays[0] == 0 );
475 REQUIRE( onDelays[1] == 105 );
477 REQUIRE( offDelays.size() == 2);
478 REQUIRE( offDelays[0] == 0 );
479 REQUIRE( offDelays[1] == 107 );
482 REQUIRE( outlets.size() == 2);
483 REQUIRE( outlets[0] == 2 );
484 REQUIRE( outlets[1] == 3 );
487 REQUIRE( onOrder.size() == 2);
488 REQUIRE( onOrder[0] == 1 );
489 REQUIRE( onOrder[1] == 0 );
491 REQUIRE( offOrder.size() == 2);
492 REQUIRE( offOrder[0] == 0 );
493 REQUIRE( offOrder[1] == 1 );
495 REQUIRE( onDelays.size() == 2);
496 REQUIRE( onDelays[0] == 0 );
497 REQUIRE( onDelays[1] == 106 );
499 REQUIRE( offDelays.size() == 2);
500 REQUIRE( offDelays[0] == 0 );
501 REQUIRE( offDelays[1] == 108 );
504 WHEN(
"using outlets keyword, only outlet specified")
506 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel2" },
507 {
"outlets",
"outlets" },
510 mx::app::appConfigurator config;
511 config.readConfig(
"/tmp/outletController_test.conf");
522 std::vector<size_t> outlets, onOrder, offOrder;
523 std::vector<unsigned> onDelays, offDelays;
525 REQUIRE( outlets.size() == 2);
526 REQUIRE( outlets[0] == 0 );
527 REQUIRE( outlets[1] == 1 );
530 REQUIRE( onOrder.size() == 0);
532 REQUIRE( offOrder.size() == 0);
534 REQUIRE( onDelays.size() == 0);
536 REQUIRE( offDelays.size() == 0);
540 REQUIRE( outlets.size() == 2);
541 REQUIRE( outlets[0] == 2 );
542 REQUIRE( outlets[1] == 3 );
545 REQUIRE( onOrder.size() == 0);
547 REQUIRE( offOrder.size() == 0);
549 REQUIRE( onDelays.size() == 0);
551 REQUIRE( offDelays.size() == 0);
554 WHEN(
"using outlets keyword, all specified")
556 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel1",
"channel1",
"channel1",
"channel1",
"channel2",
"channel2",
"channel2",
"channel2",
"channel2" },
557 {
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays" },
558 {
"0,2",
"0,1",
"1,0",
"0,105",
"0,107",
"1,3",
"1,0",
"0,1",
"0,106",
"0,108" } );
560 mx::app::appConfigurator config;
561 config.readConfig(
"/tmp/outletController_test.conf");
572 std::vector<size_t> outlets, onOrder, offOrder;
573 std::vector<unsigned> onDelays, offDelays;
575 REQUIRE( outlets.size() == 2);
576 REQUIRE( outlets[0] == 0 );
577 REQUIRE( outlets[1] == 2 );
580 REQUIRE( onOrder.size() == 2);
581 REQUIRE( onOrder[0] == 0 );
582 REQUIRE( onOrder[1] == 1 );
584 REQUIRE( offOrder.size() == 2);
585 REQUIRE( offOrder[0] == 1 );
586 REQUIRE( offOrder[1] == 0 );
588 REQUIRE( onDelays.size() == 2);
589 REQUIRE( onDelays[0] == 0 );
590 REQUIRE( onDelays[1] == 105 );
592 REQUIRE( offDelays.size() == 2);
593 REQUIRE( offDelays[0] == 0 );
594 REQUIRE( offDelays[1] == 107 );
597 REQUIRE( outlets.size() == 2);
598 REQUIRE( outlets[0] == 1 );
599 REQUIRE( outlets[1] == 3 );
602 REQUIRE( onOrder.size() == 2);
603 REQUIRE( onOrder[0] == 1 );
604 REQUIRE( onOrder[1] == 0 );
606 REQUIRE( offOrder.size() == 2);
607 REQUIRE( offOrder[0] == 0 );
608 REQUIRE( offOrder[1] == 1 );
610 REQUIRE( onDelays.size() == 2);
611 REQUIRE( onDelays[0] == 0 );
612 REQUIRE( onDelays[1] == 106 );
614 REQUIRE( offDelays.size() == 2);
615 REQUIRE( offDelays[0] == 0 );
616 REQUIRE( offDelays[1] == 108 );