60SCENARIO(
"outletController Configuration",
"[outletController]" )
62 GIVEN(
"a config file with 4 channels for 4 outlets")
64 WHEN(
"using outlet keyword, only outlet specified")
66 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel2",
"channel3",
"channel4"},
67 {
"outlet",
"outlet",
"outlet",
"outlet"},
68 {
"0",
"1",
"2",
"3"} );
70 mx::app::appConfigurator config;
71 config.readConfig(
"/tmp/outletController_test.conf");
82 std::vector<size_t> outlets, onOrder, offOrder;
83 std::vector<unsigned> onDelays, offDelays;
85 REQUIRE( outlets.size() == 1);
86 REQUIRE( outlets[0] == 0 );
89 REQUIRE( onOrder.size() == 0);
91 REQUIRE( offOrder.size() == 0);
93 REQUIRE( onDelays.size() == 0);
95 REQUIRE( offDelays.size() == 0);
98 REQUIRE( outlets.size() == 1);
99 REQUIRE( outlets[0] == 1 );
102 REQUIRE( onOrder.size() == 0);
104 REQUIRE( offOrder.size() == 0);
106 REQUIRE( onDelays.size() == 0);
108 REQUIRE( offDelays.size() == 0);
111 REQUIRE( outlets.size() == 1);
112 REQUIRE( outlets[0] == 2 );
115 REQUIRE( onOrder.size() == 0);
117 REQUIRE( offOrder.size() == 0);
119 REQUIRE( onDelays.size() == 0);
121 REQUIRE( offDelays.size() == 0);
124 REQUIRE( outlets.size() == 1);
125 REQUIRE( outlets[0] == 3 );
128 REQUIRE( onOrder.size() == 0);
130 REQUIRE( offOrder.size() == 0);
132 REQUIRE( onDelays.size() == 0);
134 REQUIRE( offDelays.size() == 0);
138 WHEN(
"using outlet keyword, all specified")
140 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" },
141 {
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays" },
142 {
"0",
"0",
"0",
"100",
"120",
"1",
"0",
"0",
"105",
"130",
"2",
"0",
"0",
"107",
"132",
"3",
"0",
"0",
"108",
"133"});
144 mx::app::appConfigurator config;
145 config.readConfig(
"/tmp/outletController_test.conf");
156 std::vector<size_t> outlets, onOrder, offOrder;
157 std::vector<unsigned> onDelays, offDelays;
160 REQUIRE( outlets.size() == 1);
161 REQUIRE( outlets[0] == 0 );
164 REQUIRE( onOrder.size() == 1);
165 REQUIRE( onOrder[0] == 0);
167 REQUIRE( offOrder.size() == 1);
168 REQUIRE( offOrder[0] == 0);
170 REQUIRE( onDelays.size() == 1);
171 REQUIRE( onDelays[0] == 100);
173 REQUIRE( offDelays.size() == 1);
174 REQUIRE( offDelays[0] == 120);
177 REQUIRE( outlets.size() == 1);
178 REQUIRE( outlets[0] == 1 );
181 REQUIRE( onOrder.size() == 1);
182 REQUIRE( onOrder[0] == 0);
184 REQUIRE( offOrder.size() == 1);
185 REQUIRE( offOrder[0] == 0);
187 REQUIRE( onDelays.size() == 1);
188 REQUIRE( onDelays[0] == 105);
190 REQUIRE( offDelays.size() == 1);
191 REQUIRE( offDelays[0] == 130);
194 REQUIRE( outlets.size() == 1);
195 REQUIRE( outlets[0] == 2 );
198 REQUIRE( onOrder.size() == 1);
199 REQUIRE( onOrder[0] == 0);
201 REQUIRE( offOrder.size() == 1);
202 REQUIRE( offOrder[0] == 0);
204 REQUIRE( onDelays.size() == 1);
205 REQUIRE( onDelays[0] == 107);
207 REQUIRE( offDelays.size() == 1);
208 REQUIRE( offDelays[0] == 132);
211 REQUIRE( outlets.size() == 1);
212 REQUIRE( outlets[0] == 3 );
215 REQUIRE( onOrder.size() == 1);
216 REQUIRE( onOrder[0] == 0);
218 REQUIRE( offOrder.size() == 1);
219 REQUIRE( offOrder[0] == 0);
221 REQUIRE( onDelays.size() == 1);
222 REQUIRE( onDelays[0] == 108);
224 REQUIRE( offDelays.size() == 1);
225 REQUIRE( offDelays[0] == 133);
228 WHEN(
"using outlets keyword, only outlet specified")
230 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel2",
"channel3",
"channel4"},
231 {
"outlets",
"outlets",
"outlets",
"outlets"},
232 {
"0",
"1",
"2",
"3"} );
234 mx::app::appConfigurator config;
235 config.readConfig(
"/tmp/outletController_test.conf");
246 std::vector<size_t> outlets, onOrder, offOrder;
247 std::vector<unsigned> onDelays, offDelays;
249 REQUIRE( outlets.size() == 1);
250 REQUIRE( outlets[0] == 0 );
253 REQUIRE( onOrder.size() == 0);
255 REQUIRE( offOrder.size() == 0);
257 REQUIRE( onDelays.size() == 0);
259 REQUIRE( offDelays.size() == 0);
262 REQUIRE( outlets.size() == 1);
263 REQUIRE( outlets[0] == 1 );
266 REQUIRE( onOrder.size() == 0);
268 REQUIRE( offOrder.size() == 0);
270 REQUIRE( onDelays.size() == 0);
272 REQUIRE( offDelays.size() == 0);
275 REQUIRE( outlets.size() == 1);
276 REQUIRE( outlets[0] == 2 );
279 REQUIRE( onOrder.size() == 0);
281 REQUIRE( offOrder.size() == 0);
283 REQUIRE( onDelays.size() == 0);
285 REQUIRE( offDelays.size() == 0);
288 REQUIRE( outlets.size() == 1);
289 REQUIRE( outlets[0] == 3 );
292 REQUIRE( onOrder.size() == 0);
294 REQUIRE( offOrder.size() == 0);
296 REQUIRE( onDelays.size() == 0);
298 REQUIRE( offDelays.size() == 0);
301 WHEN(
"using outlets keyword, all specified")
303 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" },
304 {
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays" },
305 {
"0",
"0",
"0",
"100",
"120",
"1",
"0",
"0",
"105",
"130",
"2",
"0",
"0",
"107",
"132",
"3",
"0",
"0",
"108",
"133"});
307 mx::app::appConfigurator config;
308 config.readConfig(
"/tmp/outletController_test.conf");
319 std::vector<size_t> outlets, onOrder, offOrder;
320 std::vector<unsigned> onDelays, offDelays;
323 REQUIRE( outlets.size() == 1);
324 REQUIRE( outlets[0] == 0 );
327 REQUIRE( onOrder.size() == 1);
328 REQUIRE( onOrder[0] == 0);
330 REQUIRE( offOrder.size() == 1);
331 REQUIRE( offOrder[0] == 0);
333 REQUIRE( onDelays.size() == 1);
334 REQUIRE( onDelays[0] == 100);
336 REQUIRE( offDelays.size() == 1);
337 REQUIRE( offDelays[0] == 120);
340 REQUIRE( outlets.size() == 1);
341 REQUIRE( outlets[0] == 1 );
344 REQUIRE( onOrder.size() == 1);
345 REQUIRE( onOrder[0] == 0);
347 REQUIRE( offOrder.size() == 1);
348 REQUIRE( offOrder[0] == 0);
350 REQUIRE( onDelays.size() == 1);
351 REQUIRE( onDelays[0] == 105);
353 REQUIRE( offDelays.size() == 1);
354 REQUIRE( offDelays[0] == 130);
357 REQUIRE( outlets.size() == 1);
358 REQUIRE( outlets[0] == 2 );
361 REQUIRE( onOrder.size() == 1);
362 REQUIRE( onOrder[0] == 0);
364 REQUIRE( offOrder.size() == 1);
365 REQUIRE( offOrder[0] == 0);
367 REQUIRE( onDelays.size() == 1);
368 REQUIRE( onDelays[0] == 107);
370 REQUIRE( offDelays.size() == 1);
371 REQUIRE( offDelays[0] == 132);
374 REQUIRE( outlets.size() == 1);
375 REQUIRE( outlets[0] == 3 );
378 REQUIRE( onOrder.size() == 1);
379 REQUIRE( onOrder[0] == 0);
381 REQUIRE( offOrder.size() == 1);
382 REQUIRE( offOrder[0] == 0);
384 REQUIRE( onDelays.size() == 1);
385 REQUIRE( onDelays[0] == 108);
387 REQUIRE( offDelays.size() == 1);
388 REQUIRE( offDelays[0] == 133);
392 GIVEN(
"a config file with 2 channels for 4 outlets")
394 WHEN(
"using outlet keyword, only outlet specified")
396 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel2" },
397 {
"outlet",
"outlet" },
400 mx::app::appConfigurator config;
401 config.readConfig(
"/tmp/outletController_test.conf");
412 std::vector<size_t> outlets, onOrder, offOrder;
413 std::vector<unsigned> onDelays, offDelays;
415 REQUIRE( outlets.size() == 2);
416 REQUIRE( outlets[0] == 0 );
417 REQUIRE( outlets[1] == 1 );
420 REQUIRE( onOrder.size() == 0);
422 REQUIRE( offOrder.size() == 0);
424 REQUIRE( onDelays.size() == 0);
426 REQUIRE( offDelays.size() == 0);
429 REQUIRE( outlets.size() == 2);
430 REQUIRE( outlets[0] == 2 );
431 REQUIRE( outlets[1] == 3 );
434 REQUIRE( onOrder.size() == 0);
436 REQUIRE( offOrder.size() == 0);
438 REQUIRE( onDelays.size() == 0);
440 REQUIRE( offDelays.size() == 0);
445 WHEN(
"using outlet keyword, all specified")
447 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel1",
"channel1",
"channel1",
"channel1",
"channel2",
"channel2",
"channel2",
"channel2",
"channel2" },
448 {
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlet",
"onOrder",
"offOrder",
"onDelays",
"offDelays" },
449 {
"0,1",
"0,1",
"1,0",
"0,105",
"0,107",
"2,3",
"1,0",
"0,1",
"0,106",
"0,108" } );
451 mx::app::appConfigurator config;
452 config.readConfig(
"/tmp/outletController_test.conf");
463 std::vector<size_t> outlets, onOrder, offOrder;
464 std::vector<unsigned> onDelays, offDelays;
466 REQUIRE( outlets.size() == 2);
467 REQUIRE( outlets[0] == 0 );
468 REQUIRE( outlets[1] == 1 );
471 REQUIRE( onOrder.size() == 2);
472 REQUIRE( onOrder[0] == 0 );
473 REQUIRE( onOrder[1] == 1 );
475 REQUIRE( offOrder.size() == 2);
476 REQUIRE( offOrder[0] == 1 );
477 REQUIRE( offOrder[1] == 0 );
479 REQUIRE( onDelays.size() == 2);
480 REQUIRE( onDelays[0] == 0 );
481 REQUIRE( onDelays[1] == 105 );
483 REQUIRE( offDelays.size() == 2);
484 REQUIRE( offDelays[0] == 0 );
485 REQUIRE( offDelays[1] == 107 );
488 REQUIRE( outlets.size() == 2);
489 REQUIRE( outlets[0] == 2 );
490 REQUIRE( outlets[1] == 3 );
493 REQUIRE( onOrder.size() == 2);
494 REQUIRE( onOrder[0] == 1 );
495 REQUIRE( onOrder[1] == 0 );
497 REQUIRE( offOrder.size() == 2);
498 REQUIRE( offOrder[0] == 0 );
499 REQUIRE( offOrder[1] == 1 );
501 REQUIRE( onDelays.size() == 2);
502 REQUIRE( onDelays[0] == 0 );
503 REQUIRE( onDelays[1] == 106 );
505 REQUIRE( offDelays.size() == 2);
506 REQUIRE( offDelays[0] == 0 );
507 REQUIRE( offDelays[1] == 108 );
510 WHEN(
"using outlets keyword, only outlet specified")
512 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel2" },
513 {
"outlets",
"outlets" },
516 mx::app::appConfigurator config;
517 config.readConfig(
"/tmp/outletController_test.conf");
528 std::vector<size_t> outlets, onOrder, offOrder;
529 std::vector<unsigned> onDelays, offDelays;
531 REQUIRE( outlets.size() == 2);
532 REQUIRE( outlets[0] == 0 );
533 REQUIRE( outlets[1] == 1 );
536 REQUIRE( onOrder.size() == 0);
538 REQUIRE( offOrder.size() == 0);
540 REQUIRE( onDelays.size() == 0);
542 REQUIRE( offDelays.size() == 0);
546 REQUIRE( outlets.size() == 2);
547 REQUIRE( outlets[0] == 2 );
548 REQUIRE( outlets[1] == 3 );
551 REQUIRE( onOrder.size() == 0);
553 REQUIRE( offOrder.size() == 0);
555 REQUIRE( onDelays.size() == 0);
557 REQUIRE( offDelays.size() == 0);
560 WHEN(
"using outlets keyword, all specified")
562 mx::app::writeConfigFile(
"/tmp/outletController_test.conf", {
"channel1",
"channel1",
"channel1",
"channel1",
"channel1",
"channel2",
"channel2",
"channel2",
"channel2",
"channel2" },
563 {
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays",
"outlets",
"onOrder",
"offOrder",
"onDelays",
"offDelays" },
564 {
"0,2",
"0,1",
"1,0",
"0,105",
"0,107",
"1,3",
"1,0",
"0,1",
"0,106",
"0,108" } );
566 mx::app::appConfigurator config;
567 config.readConfig(
"/tmp/outletController_test.conf");
578 std::vector<size_t> outlets, onOrder, offOrder;
579 std::vector<unsigned> onDelays, offDelays;
581 REQUIRE( outlets.size() == 2);
582 REQUIRE( outlets[0] == 0 );
583 REQUIRE( outlets[1] == 2 );
586 REQUIRE( onOrder.size() == 2);
587 REQUIRE( onOrder[0] == 0 );
588 REQUIRE( onOrder[1] == 1 );
590 REQUIRE( offOrder.size() == 2);
591 REQUIRE( offOrder[0] == 1 );
592 REQUIRE( offOrder[1] == 0 );
594 REQUIRE( onDelays.size() == 2);
595 REQUIRE( onDelays[0] == 0 );
596 REQUIRE( onDelays[1] == 105 );
598 REQUIRE( offDelays.size() == 2);
599 REQUIRE( offDelays[0] == 0 );
600 REQUIRE( offDelays[1] == 107 );
603 REQUIRE( outlets.size() == 2);
604 REQUIRE( outlets[0] == 1 );
605 REQUIRE( outlets[1] == 3 );
608 REQUIRE( onOrder.size() == 2);
609 REQUIRE( onOrder[0] == 1 );
610 REQUIRE( onOrder[1] == 0 );
612 REQUIRE( offOrder.size() == 2);
613 REQUIRE( offOrder[0] == 0 );
614 REQUIRE( offOrder[1] == 1 );
616 REQUIRE( onDelays.size() == 2);
617 REQUIRE( onDelays[0] == 0 );
618 REQUIRE( onDelays[1] == 106 );
620 REQUIRE( offDelays.size() == 2);
621 REQUIRE( offDelays[0] == 0 );
622 REQUIRE( offDelays[1] == 108 );