Skip to content

Commit a3a739e

Browse files
committed
Add monthly yearly and oneshot schedule tests
1 parent e827383 commit a3a739e

File tree

1 file changed

+316
-0
lines changed

1 file changed

+316
-0
lines changed

extras/test/src/test_CloudScheduler.cpp

Lines changed: 316 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,3 +191,319 @@ SCENARIO("Setup a weekly schedule and test isActive Method", "[Scheduler::isActi
191191
}
192192
}
193193
}
194+
195+
/**************************************************************************************/
196+
197+
SCENARIO("Setup a monthly schedule and test isActive Method", "[Scheduler::isActive]")
198+
{
199+
Scheduler schedule(1633305600, /* Start 4/10/2021 00:00:00 */
200+
1664841600, /* End 4/10/2022 00:00:00 */
201+
600, /* Duration 00:10:00 */
202+
201326598 /* Monthly */
203+
/* Day of month 6 */
204+
);
205+
206+
WHEN("Time is 6/09/2021 00:05:00")
207+
{
208+
time_now = 1630886700;
209+
THEN("Schedule must be inactive") {
210+
REQUIRE(schedule.isActive() == false);
211+
}
212+
}
213+
214+
WHEN("Time is 6/10/2021 00:05:00")
215+
{
216+
time_now = 1633478700;
217+
THEN("Schedule must be active") {
218+
REQUIRE(schedule.isActive() == true);
219+
}
220+
}
221+
222+
WHEN("Time is 6/10/2021 00:25:00")
223+
{
224+
time_now = 1633479900;
225+
THEN("Schedule must be inactive") {
226+
REQUIRE(schedule.isActive() == false);
227+
}
228+
}
229+
230+
WHEN("Time is 6/11/2021 00:05:00")
231+
{
232+
time_now = 1636157100;
233+
THEN("Schedule must be active") {
234+
REQUIRE(schedule.isActive() == true);
235+
}
236+
}
237+
238+
WHEN("Time is 6/11/2021 00:25:00")
239+
{
240+
time_now = 1636158300;
241+
THEN("Schedule must be inactive") {
242+
REQUIRE(schedule.isActive() == false);
243+
}
244+
}
245+
246+
WHEN("Time is 7/11/2021 00:05:00")
247+
{
248+
time_now = 1636243500;
249+
THEN("Schedule must be inactive") {
250+
REQUIRE(schedule.isActive() == false);
251+
}
252+
}
253+
254+
WHEN("Time is 6/12/2021 00:05:00")
255+
{
256+
time_now = 1638749100;
257+
THEN("Schedule must be active") {
258+
REQUIRE(schedule.isActive() == true);
259+
}
260+
}
261+
262+
WHEN("Time is 6/01/2022 00:05:00")
263+
{
264+
time_now = 1641427500;
265+
THEN("Schedule must be active") {
266+
REQUIRE(schedule.isActive() == true);
267+
}
268+
}
269+
270+
WHEN("Time is 6/02/2022 00:05:00")
271+
{
272+
time_now = 1644105900;
273+
THEN("Schedule must be active") {
274+
REQUIRE(schedule.isActive() == true);
275+
}
276+
}
277+
278+
WHEN("Time is 6/03/2022 00:05:00")
279+
{
280+
time_now = 1646525100;
281+
THEN("Schedule must be active") {
282+
REQUIRE(schedule.isActive() == true);
283+
}
284+
}
285+
286+
WHEN("Time is 6/04/2022 00:05:00")
287+
{
288+
time_now = 1649203500;
289+
THEN("Schedule must be active") {
290+
REQUIRE(schedule.isActive() == true);
291+
}
292+
}
293+
294+
WHEN("Time is 6/05/2022 00:05:00")
295+
{
296+
time_now = 1651795500;
297+
THEN("Schedule must be active") {
298+
REQUIRE(schedule.isActive() == true);
299+
}
300+
}
301+
302+
WHEN("Time is 6/06/2022 00:05:00")
303+
{
304+
time_now = 1654473900;
305+
THEN("Schedule must be active") {
306+
REQUIRE(schedule.isActive() == true);
307+
}
308+
}
309+
310+
WHEN("Time is 6/07/2022 00:05:00")
311+
{
312+
time_now = 1657065900;
313+
THEN("Schedule must be active") {
314+
REQUIRE(schedule.isActive() == true);
315+
}
316+
}
317+
318+
WHEN("Time is 6/08/2022 00:05:00")
319+
{
320+
time_now = 1659744300;
321+
THEN("Schedule must be active") {
322+
REQUIRE(schedule.isActive() == true);
323+
}
324+
}
325+
326+
WHEN("Time is 6/09/2022 00:05:00")
327+
{
328+
time_now = 1662422700;
329+
THEN("Schedule must be active") {
330+
REQUIRE(schedule.isActive() == true);
331+
}
332+
}
333+
334+
WHEN("Time is 6/10/2022 00:05:00")
335+
{
336+
time_now = 1665014700;
337+
THEN("Schedule must be inactive") {
338+
REQUIRE(schedule.isActive() == false);
339+
}
340+
}
341+
}
342+
343+
/**************************************************************************************/
344+
345+
SCENARIO("Setup a yearly schedule and test isActive Method", "[Scheduler::isActive]")
346+
{
347+
Scheduler schedule(1633305600, /* Start 4/10/2021 00:00:00 */
348+
1759536000, /* End 4/10/2025 00:00:00 */
349+
600, /* Duration 00:10:00 */
350+
268438022 /* Yearly */
351+
/* Month 11, Day of month 6 */
352+
);
353+
354+
WHEN("Time is 6/11/2020 00:05:00")
355+
{
356+
time_now = 1604621100;
357+
THEN("Schedule must be inactive") {
358+
REQUIRE(schedule.isActive() == false);
359+
}
360+
}
361+
362+
WHEN("Time is 6/11/2021 00:05:00")
363+
{
364+
time_now = 1636157100;
365+
THEN("Schedule must be active") {
366+
REQUIRE(schedule.isActive() == true);
367+
}
368+
}
369+
370+
WHEN("Time is 6/11/2021 00:25:00")
371+
{
372+
time_now = 1636158300;
373+
THEN("Schedule must be inactive") {
374+
REQUIRE(schedule.isActive() == false);
375+
}
376+
}
377+
378+
WHEN("Time is 6/11/2022 00:05:00")
379+
{
380+
time_now = 1667693100;
381+
THEN("Schedule must be active") {
382+
REQUIRE(schedule.isActive() == true);
383+
}
384+
}
385+
386+
WHEN("Time is 6/11/2022 00:25:00")
387+
{
388+
time_now = 1667694300;
389+
THEN("Schedule must be inactive") {
390+
REQUIRE(schedule.isActive() == false);
391+
}
392+
}
393+
394+
WHEN("Time is 7/11/2021 00:05:00")
395+
{
396+
time_now = 1636243500;
397+
THEN("Schedule must be inactive") {
398+
REQUIRE(schedule.isActive() == false);
399+
}
400+
}
401+
402+
WHEN("Time is 6/11/2023 00:05:00")
403+
{
404+
time_now = 1699229100;
405+
THEN("Schedule must be active") {
406+
REQUIRE(schedule.isActive() == true);
407+
}
408+
}
409+
410+
WHEN("Time is 6/11/2024 00:05:00")
411+
{
412+
time_now = 1730851500;
413+
THEN("Schedule must be active") {
414+
REQUIRE(schedule.isActive() == true);
415+
}
416+
}
417+
418+
WHEN("Time is 6/11/2025 00:05:00")
419+
{
420+
time_now = 1762387500;
421+
THEN("Schedule must be inactive") {
422+
REQUIRE(schedule.isActive() == false);
423+
}
424+
}
425+
}
426+
427+
/**************************************************************************************/
428+
429+
SCENARIO("Setup a one shot schedule and test isActive Method", "[Scheduler::isActive]")
430+
{
431+
Scheduler schedule(1636156800, /* Start 6/11/2021 00:00:00 */
432+
1636243199, /* End 6/11/2021 23:59:59 */
433+
600, /* Duration 00:10:00 */
434+
0 /* One shot */
435+
);
436+
437+
WHEN("Time is 6/11/2020 00:05:00")
438+
{
439+
time_now = 1604621100;
440+
THEN("Schedule must be inactive") {
441+
REQUIRE(schedule.isActive() == false);
442+
}
443+
}
444+
445+
WHEN("Time is 6/11/2021 00:05:00")
446+
{
447+
time_now = 1636157100;
448+
THEN("Schedule must be active") {
449+
REQUIRE(schedule.isActive() == true);
450+
}
451+
}
452+
453+
WHEN("Time is 6/11/2021 00:25:00")
454+
{
455+
time_now = 1636158300;
456+
THEN("Schedule must be inactive") {
457+
REQUIRE(schedule.isActive() == false);
458+
}
459+
}
460+
461+
WHEN("Time is 6/11/2022 00:05:00")
462+
{
463+
time_now = 1667693100;
464+
THEN("Schedule must be inactive") {
465+
REQUIRE(schedule.isActive() == false);
466+
}
467+
}
468+
469+
WHEN("Time is 7/11/2021 00:05:00")
470+
{
471+
time_now = 1636243500;
472+
THEN("Schedule must be inactive") {
473+
REQUIRE(schedule.isActive() == false);
474+
}
475+
}
476+
477+
WHEN("Time is 7/11/2021 00:15:00")
478+
{
479+
time_now = 1636244100;
480+
THEN("Schedule must be inactive") {
481+
REQUIRE(schedule.isActive() == false);
482+
}
483+
}
484+
485+
WHEN("Time is 6/11/2021 00:11:00")
486+
{
487+
time_now = 1636157460;
488+
THEN("Schedule must be inactive") {
489+
REQUIRE(schedule.isActive() == false);
490+
}
491+
}
492+
493+
WHEN("Time is 6/11/2021 00:01:00")
494+
{
495+
time_now = 1636156860;
496+
THEN("Schedule must be active") {
497+
REQUIRE(schedule.isActive() == true);
498+
}
499+
}
500+
501+
WHEN("Time is 7/11/2021 00:11:00")
502+
{
503+
time_now = 1636243860;
504+
THEN("Schedule must be inactive") {
505+
REQUIRE(schedule.isActive() == false);
506+
}
507+
}
508+
}
509+

0 commit comments

Comments
 (0)