| <?php
namespace GDM\Framework\Types;
/**
 * Generated by PHPUnit_SkeletonGenerator on 2014-01-08 at 01:34:16.
 */
class DateTest extends \PHPUnit_Framework_TestCase
{
    /**
     * @var Date
     */
    protected $object;
    /**
     * Sets up the fixture, for example, opens a network connection.
     * This method is called before a test is executed.
     */
    protected function setUp()
    {
        $this->object = new Date;
        date_default_timezone_set(Settings\DefaultDateSettings::$defaultTimeZone);
    }
    /**
     * Tears down the fixture, for example, closes a network connection.
     * This method is called after a test is executed.
     */
    protected function tearDown()
    {
        
    }
    /**
     * @covers GDM\Framework\Types\Date::toShortDate
     */
    public function testToShortDate()
    {
        $this->assertEquals(date(Settings\DefaultDateSettings::$defaultDateFromat), $this->object->toShortDate());
    }
    /**
     * @covers GDM\Framework\Types\Date::toShortDateTime
     */
    public function testToShortDateTime()
    {
        $this->assertEquals(date(Settings\DefaultDateSettings::$defaultDateTimeFromat), $this->object->toShortDateTime());
    }
    /**
     * @covers GDM\Framework\Types\Date::toLongDate
     */
    public function testToLongDate()
    {
        $this->assertEquals(date(Settings\DefaultDateSettings::$defaultLongDateFormat), $this->object->toLongDate());
    }
    /**
     * @covers GDM\Framework\Types\Date::toLongDateTime
     */
    public function testToLongDateTime()
    {
        $this->assertEquals(date(Settings\DefaultDateSettings::$defaultLongDateTimeFormat), $this->object->toLongDateTime());
    }
    /**
     * @covers GDM\Framework\Types\Date::toMysqlDate
     */
    public function testToMysqlDate()
    {
        $this->assertEquals(date("Y-m-d H:i:s"), $this->object->toMysqlDate());
    }
    /**
     * @covers GDM\Framework\Types\Date::get
     */
    public function testGet()
    {
        $this->assertEquals(date(Settings\DefaultDateSettings::$defaultDateTimeFromat), $this->object->get());
    }
    /**
     * @covers GDM\Framework\Types\Date::roundMinutesUp()
     * @covers GDM\Framework\Types\Date::roundMinutes()
     */
    public function testRoundMinutes()
    {
        $this->object->setTime(1, 1);
        $this->object->roundMinutes();
        $this->assertEquals(00, $this->object->format('i'));
        $this->object->setTime(1, 31);
        $this->object->roundMinutes(20);
        $this->assertEquals(40, $this->object->format('i'));
        $this->object->setTime(1, 55);
        $this->object->roundMinutes(10);
        $this->assertEquals(0, $this->object->format('i'));
    }
    /**
     * @covers GDM\Framework\Types\Date::roundMinutesUp()
     * @covers GDM\Framework\Types\Date::roundMinutes()
     */
    public function testRoundMinutesUp()
    {
        $this->object->setTime(1, 1);
        $this->object->roundMinutesUp();
        $this->assertEquals(15, $this->object->format('i'));
        $this->object->setTime(1, 31);
        $this->object->roundMinutesUp(20);
        $this->assertEquals(40, $this->object->format('i'));
        $this->object->setTime(1, 55);
        $this->object->roundMinutesUp(10);
        $this->assertEquals(0, $this->object->format('i'));
    }
    /**
     * @covers GDM\Framework\Types\Date::roundMinutesDown()
     * @covers GDM\Framework\Types\Date::roundMinutes()
     */
    public function testRoundMinutesDown()
    {
        $this->object->setTime(1, 1);
        $this->object->roundMinutesDown();
        $this->assertEquals(00, $this->object->format('i'));
        $this->object->setTime(1, 31);
        $this->object->roundMinutesDown(20);
        $this->assertEquals(20, $this->object->format('i'));
        $this->object->setTime(1, 55);
        $this->object->roundMinutesDown(10);
        $this->assertEquals(50, $this->object->format('i'));
    }
    /**
     * @covers GDM\Framework\Types\Date::fromMySqlDate
     * @todo   Implement testFromMySqlDate().
     */
    public function testFromMySqlDate()
    {
        $this->assertEquals('01/01/1970 12:30', Date::fromMySqlDate('1970-01-01 12:30:00')->toShortDateTime());
    }
    /**
     * @covers GDM\Framework\Types\Date::formatTimestamp
     * @todo   Implement testFormatTimestamp().
     */
    public function testFormatTimestamp()
    {
        $this->assertEquals(date(Settings\DefaultDateSettings::$defaultDateTimeFromat), Date::formatTimestamp());
        $this->assertEquals('01/01/1970 12:30', Date::formatTimestamp(45000));
    }
    /**
     * @covers GDM\Framework\Types\Date::mysqlToTimestamp
     * @covers GDM\Framework\Types\Date::createFromFormat
     */
    public function testMysqlToTimestamp()
    {
        $settings = new Settings\DateSettings("Pacific/Auckland");
        $this->assertEquals(1800, Date::mysqlToTimestamp('1970-01-01 12:30:00', $settings));
    }
    /**
     * @covers GDM\Framework\Types\Date::dateTimeToMysql
     * @covers GDM\Framework\Types\Date::createFromFormat
     */
    public function testDateTimeToMysql()
    {
        $this->assertEquals('1970-01-01 12:30:00', Date::dateTimeToMysql('01/01/1970 12:30'));
    }
    /**
     * @covers GDM\Framework\Types\Date::mysqlToDateTime
     * @covers GDM\Framework\Types\Date::createFromFormat
     */
    public function testMysqlToDateTime()
    {
        $this->assertEquals('01/01/1970 12:30', Date::mysqlToDateTime('1970-01-01 12:30:00'));
    }
    /**
     * @covers GDM\Framework\Types\Date::getDaysDiff
     */
    public function testGetDaysDiff()
    {
        $this->assertEquals('4', Date::getDaysDiff('01/01/1970', '05/01/1970'));
    }
    /**
     * @covers GDM\Framework\Types\Date::roundToDay
     */
    public function testRoundToDay()
    {
        $this->assertEquals(0, Date::roundToDay(4500));
        $this->assertEquals(946684800, Date::roundToDay(946729800));
    }
    /**
     * @covers GDM\Framework\Types\Date::create
     * @todo   Implement testCreate().
     */
    public function testCreate()
    {
        $this->assertEquals(date(Settings\DefaultDateSettings::$defaultDateFromat), Date::create()->toShortDate());
    }
    /**
     * @covers GDM\Framework\Types\Date::createFromFormat
     * @todo   Implement testCreateFromFormat().
     */
//    public function testCreateFromFormat() {
//        $this->assertEquals(date("Y-m-d H:i:s"), Date::cre);
//    }
    /**
     * @covers GDM\Framework\Types\Date::isTimezoneInDST
     * @todo   Doesnt really rest if its accurate?
     */
    public function testIsTimezoneInDST()
    {
        $tz    = new \DateTimeZone("Pacific/Auckland");
        $trans = $tz->getTransitions();
        $res   = ((count($trans) && $trans[count($trans) - 1]['ts'] > time()));
        $this->assertEquals($res, Date::isTimezoneInDST($tz));
    }
    /**
     * @covers GDM\Framework\Types\Date::daysOfTheWeek
     * @todo   Implement testDaysOfTheWeek().
     */
    public function testDaysOfTheWeek()
    {
        $lRes = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
        $NRes = ["1", "2", "3", "4", "5", "6", "7"];
        $this->assertEquals($lRes, Date::daysOfTheWeek('Monday', "l"));
        $this->assertEquals($NRes, Date::daysOfTheWeek('Monday', "N"));
    }
    /**
     * @covers GDM\Framework\Types\Date::monthsOfTheYear
     * @todo   Implement testMonthsOfTheYear().
     */
    public function testMonthsOfTheYear()
    {
        $FRes = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
        $nRes = ['1', "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];
        $this->assertEquals($FRes, Date::monthsOfTheYear("F"));
        $this->assertEquals($nRes, Date::monthsOfTheYear("n"));
    }
    /**
     * @covers GDM\Framework\Types\Date::toBoolean
     * @todo   Implement testToBoolean().
     */
    public function testToBoolean()
    {
// Remove the following lines when you implement this test.
        $this->markTestIncomplete(
            'This test has not been implemented yet.'
        );
    }
    /**
     * @covers GDM\Framework\Types\Date::toInteger
     * @todo   Implement testToInteger().
     */
    public function testToInteger()
    {
        $this->markTestIncomplete(
            'This test has not been implemented yet.'
        );
    }
    /**
     * @covers GDM\Framework\Types\Date::toDouble
     * @todo   Implement testToDouble().
     */
    public function testToDouble()
    {
        $this->markTestIncomplete(
            'This test has not been implemented yet.'
        );
    }
    /**
     * @covers GDM\Framework\Types\Date::toString
     * @todo   Implement testToString().
     */
    public function testToString()
    {
        $this->markTestIncomplete(
            'This test has not been implemented yet.'
        );
    }
    /**
     * @covers GDM\Framework\Types\Date::toArray
     * @todo   Implement testToArray().
     */
    public function testToArray()
    {
        $this->markTestIncomplete(
            'This test has not been implemented yet.'
        );
    }
    /**
     * @covers GDM\Framework\Types\Date::__toString
     * @todo   Implement test__toString().
     */
    public function test__toString()
    {
        $this->markTestIncomplete(
            'This test has not been implemented yet.'
        );
    }
    /**
     * @covers GDM\Framework\Types\Date::isAfter)
     * @todo   Implement testToArray().
     */
    public function testIsAfter()
    {
        $after  = \GDM\Framework\Types\Date::createFromFormat("H:i", "20:00");
        $before = \GDM\Framework\Types\Date::createFromFormat("H:i", "08:00");
        $this->assertTrue($after->isAfter($before));
        $this->assertFalse($before->isAfter($after));
    }
    /**
     * @covers GDM\Framework\Types\Date::isBefore
     * @todo   Implement testToArray().
     */
    public function testIsBefore()
    {
        $after  = \GDM\Framework\Types\Date::createFromFormat("H:i", "20:00");
        $before = \GDM\Framework\Types\Date::createFromFormat("H:i", "08:00");
        $this->assertFalse($after->isBefore($before));
        $this->assertTrue($before->isBefore($after));
    }
}
 |