Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / dbal / tests / Doctrine / Tests / DBAL / Types / DateTest.php
diff --git a/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Types/DateTest.php b/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Types/DateTest.php
new file mode 100644 (file)
index 0000000..e3763fd
--- /dev/null
@@ -0,0 +1,81 @@
+<?php
+
+namespace Doctrine\Tests\DBAL\Types;
+
+use Doctrine\DBAL\Types\Type;
+use Doctrine\Tests\DBAL\Mocks;
+
+require_once __DIR__ . '/../../TestInit.php';
+
+class DateTest extends \Doctrine\Tests\DbalTestCase
+{
+    protected
+        $_platform,
+        $_type,
+        $_tz;
+
+    protected function setUp()
+    {
+        $this->_platform = new \Doctrine\Tests\DBAL\Mocks\MockPlatform();
+        $this->_type = Type::getType('date');
+        $this->_tz = date_default_timezone_get();
+    }
+
+    public function tearDown()
+    {
+        date_default_timezone_set($this->_tz);
+    }
+
+    public function testDateConvertsToDatabaseValue()
+    {
+        $this->assertTrue(
+            is_string($this->_type->convertToDatabaseValue(new \DateTime(), $this->_platform))
+        );
+    }
+
+    public function testDateConvertsToPHPValue()
+    {
+        // Birthday of jwage and also birthday of Doctrine. Send him a present ;)
+        $this->assertTrue(
+            $this->_type->convertToPHPValue('1985-09-01', $this->_platform)
+            instanceof \DateTime
+        );
+    }
+
+    public function testDateResetsNonDatePartsToZeroUnixTimeValues()
+    {
+        $date = $this->_type->convertToPHPValue('1985-09-01', $this->_platform);
+
+        $this->assertEquals('00:00:00', $date->format('H:i:s'));
+    }
+
+    public function testDateRests_SummerTimeAffection()
+    {
+        date_default_timezone_set('Europe/Berlin');
+
+        $date = $this->_type->convertToPHPValue('2009-08-01', $this->_platform);
+        $this->assertEquals('00:00:00', $date->format('H:i:s'));
+        $this->assertEquals('2009-08-01', $date->format('Y-m-d'));
+
+        $date = $this->_type->convertToPHPValue('2009-11-01', $this->_platform);
+        $this->assertEquals('00:00:00', $date->format('H:i:s'));
+        $this->assertEquals('2009-11-01', $date->format('Y-m-d'));
+    }
+
+    public function testInvalidDateFormatConversion()
+    {
+        $this->setExpectedException('Doctrine\DBAL\Types\ConversionException');
+        $this->_type->convertToPHPValue('abcdefg', $this->_platform);
+    }
+
+    public function testNullConversion()
+    {
+        $this->assertNull($this->_type->convertToPHPValue(null, $this->_platform));
+    }
+
+    public function testConvertDateTimeToPHPValue()
+    {
+        $date = new \DateTime("now");
+        $this->assertSame($date, $this->_type->convertToPHPValue($date, $this->_platform));
+    }
+}