some more unit-tests, test coverage fairly complete now
authorGerd von Egidy <gerd.von.egidy@intra2net.com>
Tue, 3 Feb 2009 10:24:54 +0000 (11:24 +0100)
committerGerd von Egidy <gerd.von.egidy@intra2net.com>
Tue, 3 Feb 2009 10:24:54 +0000 (11:24 +0100)
test/test_cron_interval.cpp

index c873607..78b1c68 100644 (file)
@@ -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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(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<time_t>(1238536800), cron.get_next_run(1238367599));
+    }
 };
 
 CPPUNIT_TEST_SUITE_REGISTRATION(TestCronIntervalFunc);