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

3
namespace Doctrine\DBAL\Tests\Types;
4

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

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

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

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

25
    public function testReturnsSqlDeclarationFromPlatformVarchar(): void
26
    {
27
        $this->platform->expects(self::once())
28 29 30
            ->method('getVarcharTypeDeclarationSQL')
            ->willReturn('TEST_VARCHAR');

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

34
    public function testReturnsDefaultLengthFromPlatformVarchar(): void
35
    {
36
        $this->platform->expects(self::once())
37 38 39
            ->method('getVarcharDefaultLength')
            ->willReturn(255);

Sergei Morozov's avatar
Sergei Morozov committed
40
        self::assertEquals(255, $this->type->getDefaultLength($this->platform));
41
    }
42

43
    public function testConvertToPHPValue(): void
44
    {
45 46
        self::assertIsString($this->type->convertToPHPValue('foo', $this->platform));
        self::assertIsString($this->type->convertToPHPValue('', $this->platform));
47 48
    }

49
    public function testNullConversion(): void
50
    {
Sergei Morozov's avatar
Sergei Morozov committed
51
        self::assertNull($this->type->convertToPHPValue(null, $this->platform));
52
    }
53

54
    public function testSQLConversion(): void
55
    {
Sergei Morozov's avatar
Sergei Morozov committed
56 57 58
        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));
59
    }
60
}