UnitTestCase('Test of Calendar_Engine_PearDate'); } function setUp() { $this->engine = new Calendar_Engine_PearDate(); } function testGetSecondsInMinute() { $this->assertEqual($this->engine->getSecondsInMinute(),60); } function testGetMinutesInHour() { $this->assertEqual($this->engine->getMinutesInHour(),60); } function testGetHoursInDay() { $this->assertEqual($this->engine->getHoursInDay(),24); } function testGetFirstDayOfWeek() { $this->assertEqual($this->engine->getFirstDayOfWeek(),1); } function testGetWeekDays() { $this->assertEqual($this->engine->getWeekDays(),array(0,1,2,3,4,5,6)); } function testGetDaysInWeek() { $this->assertEqual($this->engine->getDaysInWeek(),7); } function testGetWeekNInYear() { $this->assertEqual($this->engine->getWeekNInYear(2003, 11, 3), 45); } function testGetWeekNInMonth() { $this->assertEqual($this->engine->getWeekNInMonth(2003, 11, 3), 2); } function testGetWeeksInMonth0() { $this->assertEqual($this->engine->getWeeksInMonth(2003, 11, 0), 6); //week starts on sunday } function testGetWeeksInMonth1() { $this->assertEqual($this->engine->getWeeksInMonth(2003, 11, 1), 5); //week starts on monday } function testGetWeeksInMonth2() { $this->assertEqual($this->engine->getWeeksInMonth(2003, 2, 6), 4); //week starts on saturday } function testGetWeeksInMonth3() { // Unusual cases that can cause fails (shows up with example 21.php) $this->assertEqual($this->engine->getWeeksInMonth(2004,2,1),5); $this->assertEqual($this->engine->getWeeksInMonth(2004,8,1),6); } function testGetDayOfWeek() { $this->assertEqual($this->engine->getDayOfWeek(2003, 11, 18), 2); } function testGetFirstDayInMonth() { $this->assertEqual($this->engine->getFirstDayInMonth(2003,10),3); } function testGetDaysInMonth() { $this->assertEqual($this->engine->getDaysInMonth(2003,10),31); } function testGetMinYears() { $this->assertEqual($this->engine->getMinYears(),0); } function testGetMaxYears() { $this->assertEqual($this->engine->getMaxYears(),9999); } function testDateToStamp() { $stamp = '2003-10-15 13:30:45'; $this->assertEqual($this->engine->dateToStamp(2003,10,15,13,30,45),$stamp); } function testStampToSecond() { $stamp = '2003-10-15 13:30:45'; $this->assertEqual($this->engine->stampToSecond($stamp),45); } function testStampToMinute() { $stamp = '2003-10-15 13:30:45'; $this->assertEqual($this->engine->stampToMinute($stamp),30); } function testStampToHour() { $stamp = '2003-10-15 13:30:45'; $this->assertEqual($this->engine->stampToHour($stamp),13); } function testStampToDay() { $stamp = '2003-10-15 13:30:45'; $this->assertEqual($this->engine->stampToDay($stamp),15); } function testStampToMonth() { $stamp = '2003-10-15 13:30:45'; $this->assertEqual($this->engine->stampToMonth($stamp),10); } function testStampToYear() { $stamp = '2003-10-15 13:30:45'; $this->assertEqual($this->engine->stampToYear($stamp),2003); } function testAdjustDate() { $stamp = '2004-01-01 13:30:45'; $y = $this->engine->stampToYear($stamp); $m = $this->engine->stampToMonth($stamp); $d = $this->engine->stampToDay($stamp); //the first day of the month should be thursday $this->assertEqual($this->engine->getDayOfWeek($y, $m, $d), 4); $m--; // 2004-00-01 => 2003-12-01 $this->engine->adjustDate($y, $m, $d, $dummy, $dummy, $dummy); $this->assertEqual($y, 2003); $this->assertEqual($m, 12); $this->assertEqual($d, 1); // get last day and check if it's wednesday $d = $this->engine->getDaysInMonth($y, $m); $this->assertEqual($this->engine->getDayOfWeek($y, $m, $d), 3); } } if (!defined('TEST_RUNNING')) { define('TEST_RUNNING', true); $test = &new TestOfPearDateEngine(); $test->run(new HtmlReporter()); } ?>