StringTest.php 1.57 KB
Newer Older
1 2
<?php

Michael Moravec's avatar
Michael Moravec committed
3 4
declare(strict_types=1);

5
namespace Doctrine\DBAL\Tests\Types;
6

7 8 9
use Doctrine\DBAL\Platforms\AbstractPlatform;
use Doctrine\DBAL\Types\StringType;
use PHPUnit\Framework\MockObject\MockObject;
10
use PHPUnit\Framework\TestCase;
11

12
class StringTest extends TestCase
13
{
14
    /** @var AbstractPlatform|MockObject */
Sergei Morozov's avatar
Sergei Morozov committed
15
    private $platform;
Gabriel Caruso's avatar
Gabriel Caruso committed
16

17
    /** @var StringType */
Sergei Morozov's avatar
Sergei Morozov committed
18
    private $type;
19

20
    protected function setUp(): void
21
    {
22
        $this->platform = $this->createMock(AbstractPlatform::class);
Sergei Morozov's avatar
Sergei Morozov committed
23
        $this->type     = new StringType();
24 25
    }

Sergei Morozov's avatar
Sergei Morozov committed
26
    public function testReturnsSQLDeclaration(): void
27
    {
28
        $this->platform->expects(self::once())
29
            ->method('getStringTypeDeclarationSQL')
30 31
            ->willReturn('TEST_VARCHAR');

32
        self::assertEquals('TEST_VARCHAR', $this->type->getSQLDeclaration([], $this->platform));
33 34
    }

35
    public function testConvertToPHPValue(): void
36
    {
37 38
        self::assertIsString($this->type->convertToPHPValue('foo', $this->platform));
        self::assertIsString($this->type->convertToPHPValue('', $this->platform));
39 40
    }

41
    public function testNullConversion(): void
42
    {
Sergei Morozov's avatar
Sergei Morozov committed
43
        self::assertNull($this->type->convertToPHPValue(null, $this->platform));
44
    }
45

46
    public function testSQLConversion(): void
47
    {
Sergei Morozov's avatar
Sergei Morozov committed
48 49 50
        self::assertFalse($this->type->canRequireSQLConversion(), 'String type can never require SQL conversion to work.');
        self::assertEquals('t.foo', $this->type->convertToDatabaseValueSQL('t.foo', $this->platform));
        self::assertEquals('t.foo', $this->type->convertToPHPValueSQL('t.foo', $this->platform));
51
    }
52
}