From 94278e1feedb2c7ea03e399195e4ff7707ac2806 Mon Sep 17 00:00:00 2001 From: Gerd von Egidy Date: Tue, 3 Feb 2009 11:24:54 +0100 Subject: [PATCH] some more unit-tests, test coverage fairly complete now --- test/test_cron_interval.cpp | 107 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 107 insertions(+), 0 deletions(-) diff --git a/test/test_cron_interval.cpp b/test/test_cron_interval.cpp index c873607..78b1c68 100644 --- a/test/test_cron_interval.cpp +++ b/test/test_cron_interval.cpp @@ -66,6 +66,18 @@ class TestCronIntervalFunc : public TestFixture CPPUNIT_TEST(IntervalOutSecondDSTBackwards2); CPPUNIT_TEST(IntervalOutSecondDSTBackwards3); CPPUNIT_TEST(IntervalOutSecondDSTBackwards4); + CPPUNIT_TEST(IntervalDSTBackwardsWholeday1); + CPPUNIT_TEST(IntervalDSTBackwardsWholeday2); + CPPUNIT_TEST(IntervalDSTBackwardsWholeday3); + CPPUNIT_TEST(IntervalOverDSTForward1); + CPPUNIT_TEST(IntervalOverDSTForward2); + CPPUNIT_TEST(IntervalOverDSTForward3); + CPPUNIT_TEST(IntervalInDSTForward1); + CPPUNIT_TEST(IntervalInDSTForward2); + CPPUNIT_TEST(IntervalInDSTForward3); + CPPUNIT_TEST(IntervalOutDSTForward); + CPPUNIT_TEST(IntervalDSTForwardWholeday1); + CPPUNIT_TEST(IntervalDSTForwardWholeday2); CPPUNIT_TEST_SUITE_END(); @@ -353,6 +365,101 @@ public: CPPUNIT_ASSERT_EQUAL( static_cast(1224986460), cron.get_next_run(1224986400)); } + void IntervalDSTBackwardsWholeday1() + { + WeekCron cron("0123456",0,86400,60); + // calc at: Sun Oct 26 22:58:59 2008 + // expected next run: Sun Oct 26 22:59:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1225058340), cron.get_next_run(1225058339)); + } + + void IntervalDSTBackwardsWholeday2() + { + WeekCron cron("0123456",0,86400,60); + // calc at: Sun Oct 26 22:59:59 2008 + // expected next run: Mon Oct 27 00:00:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1225062000), cron.get_next_run(1225058399)); + } + + void IntervalDSTBackwardsWholeday3() + { + WeekCron cron("0123456",0,86400,60); + // calc at: Sun Oct 26 23:30:00 2008 + // expected next run: Mon Oct 27 00:00:00 2008 + CPPUNIT_ASSERT_EQUAL( static_cast(1225062000), cron.get_next_run(1225060200)); + } + + void IntervalOverDSTForward1() + { + WeekCron cron("0123456",0,14400,60); + // calc at: Sun Mar 29 01:59:59 2009 + // expected next run: Sun Mar 29 03:00:00 2009 + CPPUNIT_ASSERT_EQUAL( static_cast(1238288400), cron.get_next_run(1238288399)); + } + + void IntervalOverDSTForward2() + { + WeekCron cron("0123456",0,14400,60); + // calc at: Sun Mar 29 04:00:00 2009 + // expected next run: Sun Mar 29 04:01:00 2009 + CPPUNIT_ASSERT_EQUAL( static_cast(1238292060), cron.get_next_run(1238292000)); + } + + void IntervalOverDSTForward3() + { + WeekCron cron("0123456",0,14400,60); + // calc at: Sun Mar 29 04:59:59 2009 + // expected next run: Mon Mar 30 00:00:00 2009 + CPPUNIT_ASSERT_EQUAL( static_cast(1238364000), cron.get_next_run(1238295599)); + } + + void IntervalInDSTForward1() + { + WeekCron cron("0123456",3600,9000,60); + // calc at: Sun Mar 29 01:59:59 2009 + // expected next run: Sun Mar 29 03:00:00 2009 + CPPUNIT_ASSERT_EQUAL( static_cast(1238288400), cron.get_next_run(1238288399)); + } + + void IntervalInDSTForward2() + { + WeekCron cron("0123456",3600,9000,60); + // calc at: Sun Mar 29 03:29:59 2009 + // expected next run: Mon Mar 30 01:00:00 2009 + CPPUNIT_ASSERT_EQUAL( static_cast(1238367600), cron.get_next_run(1238290199)); + } + + void IntervalInDSTForward3() + { + WeekCron cron("0123456",7200,9000,60); + // calc at: Sun Mar 29 01:59:59 2009 + // expected next run: Sun Mar 29 03:00:00 2009 + CPPUNIT_ASSERT_EQUAL( static_cast(1238288400), cron.get_next_run(1238288399)); + } + + void IntervalOutDSTForward() + { + WeekCron cron("0123456",9000,14400,60); + // calc at: Sun Mar 29 03:29:59 2009 + // expected next run: Sun Mar 29 03:30:30 2009 + CPPUNIT_ASSERT_EQUAL( static_cast(1238290200), cron.get_next_run(1238290199)); + } + + void IntervalDSTForwardWholeday1() + { + WeekCron cron("03",0,86400,60); + // calc at: Sun Mar 29 23:59:59 2009 + // expected next run: Mon Mar 30 00:00:00 2009 + CPPUNIT_ASSERT_EQUAL( static_cast(1238364000), cron.get_next_run(1238363999)); + } + + void IntervalDSTForwardWholeday2() + { + WeekCron cron("03",0,86400,60); + // calc at: Mon Mar 30 00:59:59 2009 + // expected next run: Wed Apr 1 00:00:00 2009 + CPPUNIT_ASSERT_EQUAL( static_cast(1238536800), cron.get_next_run(1238367599)); + } }; CPPUNIT_TEST_SUITE_REGISTRATION(TestCronIntervalFunc); -- 1.7.1