Test creating dates from timestamps.
function testDateTimestamp() {
// Create date object from a unix timestamp and display it in
// local time.
$input = 0;
$timezone = 'UTC';
$date = new DateTimePlus($input, $timezone);
$value = $date
->format('c');
$expected = '1970-01-01T00:00:00+00:00';
$this
->assertEqual($expected, $value, "Test new DateTimePlus({$input}, {$timezone}): should be {$expected}, found {$value}.");
$expected = 'UTC';
$value = $date
->getTimeZone()
->getName();
$this
->assertEqual($expected, $value, "The current timezone is {$value}: should be {$expected}.");
$expected = 0;
$value = $date
->getOffset();
$this
->assertEqual($expected, $value, "The current offset is {$value}: should be {$expected}.");
$timezone = 'America/Los_Angeles';
$date
->setTimezone(new DateTimeZone($timezone));
$value = $date
->format('c');
$expected = '1969-12-31T16:00:00-08:00';
$this
->assertEqual($expected, $value, "Test \$date->setTimezone(new DateTimeZone({$timezone})): should be {$expected}, found {$value}.");
$expected = 'America/Los_Angeles';
$value = $date
->getTimeZone()
->getName();
$this
->assertEqual($expected, $value, "The current timezone should be {$expected}, found {$value}.");
$expected = '-28800';
$value = $date
->getOffset();
$this
->assertEqual($expected, $value, "The current offset should be {$expected}, found {$value}.");
// Create a date using the timestamp of zero, then display its
// value both in UTC and the local timezone.
$input = 0;
$timezone = 'America/Los_Angeles';
$date = new DateTimePlus($input, $timezone);
$offset = $date
->getOffset();
$value = $date
->format('c');
$expected = '1969-12-31T16:00:00-08:00';
$this
->assertEqual($expected, $value, "Test new DateTimePlus({$input}, {$timezone}): should be {$expected}, found {$value}.");
$expected = 'America/Los_Angeles';
$value = $date
->getTimeZone()
->getName();
$this
->assertEqual($expected, $value, "The current timezone should be {$expected}, found {$value}.");
$expected = '-28800';
$value = $date
->getOffset();
$this
->assertEqual($expected, $value, "The current offset should be {$expected}, found {$value}.");
$timezone = 'UTC';
$date
->setTimezone(new DateTimeZone($timezone));
$value = $date
->format('c');
$expected = '1970-01-01T00:00:00+00:00';
$this
->assertEqual($expected, $value, "Test \$date->setTimezone(new DateTimeZone({$timezone})): should be {$expected}, found {$value}.");
$expected = 'UTC';
$value = $date
->getTimeZone()
->getName();
$this
->assertEqual($expected, $value, "The current timezone should be {$expected}, found {$value}.");
$expected = '0';
$value = $date
->getOffset();
$this
->assertEqual($expected, $value, "The current offset should be {$expected}, found {$value}.");
}