DateTimeTest.php 1.49 KB
Newer Older
1 2
<?php

3
namespace Doctrine\DBAL\Tests\Types;
4

Sergei Morozov's avatar
Sergei Morozov committed
5
use DateTime;
Sergei Morozov's avatar
Sergei Morozov committed
6
use Doctrine\DBAL\Types\ConversionException;
7 8
use Doctrine\DBAL\Types\Type;

9
class DateTimeTest extends BaseDateTypeTestCase
10
{
11
    protected function setUp(): void
12
    {
13 14 15
        $this->type = Type::getType('datetime');

        parent::setUp();
16 17
    }

18
    public function testDateTimeConvertsToDatabaseValue(): void
19
    {
Sergei Morozov's avatar
Sergei Morozov committed
20
        $date = new DateTime('1985-09-01 10:10:10');
21

22
        $expected = $date->format($this->platform->getDateTimeTzFormatString());
Sergei Morozov's avatar
Sergei Morozov committed
23
        $actual   = $this->type->convertToDatabaseValue($date, $this->platform);
24

25
        self::assertEquals($expected, $actual);
26 27
    }

28
    public function testDateTimeConvertsToPHPValue(): void
29 30
    {
        // Birthday of jwage and also birthday of Doctrine. Send him a present ;)
31
        $date = $this->type->convertToPHPValue('1985-09-01 00:00:00', $this->platform);
32 33
        self::assertInstanceOf('DateTime', $date);
        self::assertEquals('1985-09-01 00:00:00', $date->format('Y-m-d H:i:s'));
34
    }
35

36
    public function testInvalidDateTimeFormatConversion(): void
37
    {
Sergei Morozov's avatar
Sergei Morozov committed
38
        $this->expectException(ConversionException::class);
39
        $this->type->convertToPHPValue('abcdefg', $this->platform);
40
    }
41

42
    public function testConvertsNonMatchingFormatToPhpValueWithParser(): void
43 44 45
    {
        $date = '1985/09/01 10:10:10.12345';

46
        $actual = $this->type->convertToPHPValue($date, $this->platform);
47

48
        self::assertEquals('1985-09-01 10:10:10', $actual->format('Y-m-d H:i:s'));
49
    }
50
}