| // +----------------------------------------------------------------------+ // // $Id$ // require_once 'Date.php'; require_once 'PHPUnit.php'; class myDate extends Date { function myDate($date) { $this->Date($date); } } /** * Test case for Date * * @package Date * @author Marshall Roch */ class Date_Test extends PHPUnit_TestCase { var $time; function Date_Test($name) { $this->PHPUnit_TestCase($name); } function setUp() { $this->time = new Date("2003-10-04 14:03:24"); } function tearDown() { unset($this->time); } function testDateNull() { $time = new Date(); $this->assertEquals( date('Y-m-d H:i:s'), sprintf('%04d-%02d-%02d %02d:%02d:%02d', $time->year, $time->month, $time->day, $time->hour, $time->minute, $time->second) ); } function testAbstraction() { $d = new Date(); $my = new myDate($d); $this->assertEquals($d->getDate(),$my->getDate()); } function testDateCopy() { $temp = new Date($this->time); $this->assertEquals($temp, $this->time); } function testDateISO() { $temp = new Date("2003-10-04 14:03:24"); $this->assertEquals( '2003-10-04 14:03:24', sprintf('%04d-%02d-%02d %02d:%02d:%02d', $temp->year, $temp->month, $temp->day, $temp->hour, $temp->minute, $temp->second) ); } function testDateISOBasic() { $temp = new Date("20031004T140324"); $this->assertEquals( '2003-10-04 14:03:24', sprintf('%04d-%02d-%02d %02d:%02d:%02d', $temp->year, $temp->month, $temp->day, $temp->hour, $temp->minute, $temp->second) ); } function testDateISOExtended() { $temp = new Date("2003-10-04T14:03:24"); $this->assertEquals( '2003-10-04 14:03:24', sprintf('%04d-%02d-%02d %02d:%02d:%02d', $temp->year, $temp->month, $temp->day, $temp->hour, $temp->minute, $temp->second) ); } function testDateISOTimestamp() { $temp = new Date("20031004140324"); $this->assertEquals( '2003-10-04 14:03:24', sprintf('%04d-%02d-%02d %02d:%02d:%02d', $temp->year, $temp->month, $temp->day, $temp->hour, $temp->minute, $temp->second) ); } function testDateUnixtime() { $temp = new Date(strtotime("2003-10-04 14:03:24")); $this->assertEquals( '2003-10-04 14:03:24', sprintf('%04d-%02d-%02d %02d:%02d:%02d', $temp->year, $temp->month, $temp->day, $temp->hour, $temp->minute, $temp->second) ); } function testSetDateISO() { $this->time->setDate("2003-10-04 14:03:24"); $this->assertEquals( '2003-10-04 14:03:24', sprintf('%04d-%02d-%02d %02d:%02d:%02d', $this->time->year, $this->time->month, $this->time->day, $this->time->hour, $this->time->minute, $this->time->second) ); } function testSetDateISOBasic() { $this->time->setDate("20031004T140324"); $this->assertEquals( '2003-10-04 14:03:24', sprintf('%04d-%02d-%02d %02d:%02d:%02d', $this->time->year, $this->time->month, $this->time->day, $this->time->hour, $this->time->minute, $this->time->second) ); } function testSetDateISOExtended() { $this->time->setDate("2003-10-04T14:03:24"); $this->assertEquals( '2003-10-04 14:03:24', sprintf('%04d-%02d-%02d %02d:%02d:%02d', $this->time->year, $this->time->month, $this->time->day, $this->time->hour, $this->time->minute, $this->time->second) ); } function testSetDateTimestamp() { $this->time->setDate("20031004140324"); $this->assertEquals( '2003-10-04 14:03:24', sprintf('%04d-%02d-%02d %02d:%02d:%02d', $this->time->year, $this->time->month, $this->time->day, $this->time->hour, $this->time->minute, $this->time->second) ); } function testSetDateUnixtime() { $this->time->setDate(strtotime("2003-10-04 14:03:24")); $this->assertEquals( '2003-10-04 14:03:24', sprintf('%04d-%02d-%02d %02d:%02d:%02d', $this->time->year, $this->time->month, $this->time->day, $this->time->hour, $this->time->minute, $this->time->second) ); } function testGetDateISO() { $date = $this->time->getDate(DATE_FORMAT_ISO); $this->assertEquals('2003-10-04 14:03:24', $date); } function testGetDateISOBasic() { $date = $this->time->getDate(DATE_FORMAT_ISO_BASIC); $this->assertEquals('20031004T140324Z', $date); } function testGetDateISOExtended() { $date = $this->time->getDate(DATE_FORMAT_ISO_EXTENDED); $this->assertEquals('2003-10-04T14:03:24Z', $date); } function testGetDateTimestamp() { $date = $this->time->getDate(DATE_FORMAT_TIMESTAMP); $this->assertEquals('20031004140324', $date); } function testGetDateUnixtime() { $date = $this->time->getDate(DATE_FORMAT_UNIXTIME); $this->assertEquals(strtotime('2003-10-04 14:03:24'), $date); } function testFormat() { $codes = array( 'a' => 'Sat', 'A' => 'Saturday', 'b' => 'Oct', 'B' => 'October', 'C' => '20', 'd' => '04', 'D' => '10/04/2003', 'e' => '4', 'H' => '14', 'I' => '02', 'j' => '277', 'm' => '10', 'M' => '03', 'n' => "\n", 'O' => '+00:00', 'o' => '+00:00', 'p' => 'pm', 'P' => 'PM', 'r' => '02:03:24 PM', 'R' => '14:03', 'S' => '24', 't' => "\t", 'T' => '14:03:24', 'w' => '6', 'U' => '40', 'y' => '03', 'Y' => '2003', '%' => '%' ); foreach ($codes as $code => $expected) { $this->assertEquals( "$code: $expected", $this->time->format("$code: %$code") ); } } function testToUTCbyOffset() { $this->time->setTZbyID('EST'); $this->time->toUTC(); $temp = new Date("2003-10-04 14:03:24"); $temp->toUTCbyOffset("-05:00"); $this->assertEquals($temp, $this->time); } } // runs the tests $suite = new PHPUnit_TestSuite("Date_Test"); $result = PHPUnit::run($suite); // prints the tests echo $result->toString(); ?>