3 namespace Doctrine\Tests\DBAL\Types;
5 use Doctrine\DBAL\Types\Type;
6 use Doctrine\Tests\DBAL\Mocks;
8 require_once __DIR__ . '/../../TestInit.php';
10 class DateTimeTest extends \Doctrine\Tests\DbalTestCase
16 protected function setUp()
18 $this->_platform = new \Doctrine\Tests\DBAL\Mocks\MockPlatform();
19 $this->_type = Type::getType('datetime');
22 public function testDateTimeConvertsToDatabaseValue()
24 $date = new \DateTime('1985-09-01 10:10:10');
26 $expected = $date->format($this->_platform->getDateTimeTzFormatString());
27 $actual = $this->_type->convertToDatabaseValue($date, $this->_platform);
29 $this->assertEquals($expected, $actual);
32 public function testDateTimeConvertsToPHPValue()
34 // Birthday of jwage and also birthday of Doctrine. Send him a present ;)
35 $date = $this->_type->convertToPHPValue('1985-09-01 00:00:00', $this->_platform);
36 $this->assertInstanceOf('DateTime', $date);
37 $this->assertEquals('1985-09-01 00:00:00', $date->format('Y-m-d H:i:s'));
40 public function testInvalidDateTimeFormatConversion()
42 $this->setExpectedException('Doctrine\DBAL\Types\ConversionException');
43 $this->_type->convertToPHPValue('abcdefg', $this->_platform);
46 public function testNullConversion()
48 $this->assertNull($this->_type->convertToPHPValue(null, $this->_platform));
51 public function testConvertDateTimeToPHPValue()
53 $date = new \DateTime("now");
54 $this->assertSame($date, $this->_type->convertToPHPValue($date, $this->_platform));