DBAL461Test.php 1.2 KB
Newer Older
1 2
<?php

3
namespace Doctrine\DBAL\Tests\Functional\Ticket;
4

Sergei Morozov's avatar
Sergei Morozov committed
5 6
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Platforms\AbstractPlatform;
7
use Doctrine\DBAL\Schema\SQLServerSchemaManager;
8
use Doctrine\DBAL\Types\DecimalType;
Sergei Morozov's avatar
Sergei Morozov committed
9 10
use PHPUnit\Framework\TestCase;
use ReflectionMethod;
11

Sergei Morozov's avatar
Sergei Morozov committed
12
class DBAL461Test extends TestCase
13
{
14
    public function testIssue(): void
15
    {
Sergei Morozov's avatar
Sergei Morozov committed
16 17
        $conn     = $this->createMock(Connection::class);
        $platform = $this->getMockForAbstractClass(AbstractPlatform::class);
18 19 20 21
        $platform->registerDoctrineTypeMapping('numeric', 'decimal');

        $schemaManager = new SQLServerSchemaManager($conn, $platform);

Sergei Morozov's avatar
Sergei Morozov committed
22
        $reflectionMethod = new ReflectionMethod($schemaManager, '_getPortableTableColumnDefinition');
23
        $reflectionMethod->setAccessible(true);
Sergei Morozov's avatar
Sergei Morozov committed
24
        $column = $reflectionMethod->invoke($schemaManager, [
25 26 27 28 29 30 31 32
            'type' => 'numeric(18,0)',
            'length' => null,
            'default' => null,
            'notnull' => false,
            'scale' => 18,
            'precision' => 0,
            'autoincrement' => false,
            'collation' => 'foo',
Steve Müller's avatar
Steve Müller committed
33
            'comment' => null,
Sergei Morozov's avatar
Sergei Morozov committed
34
        ]);
35

36
        self::assertInstanceOf(DecimalType::class, $column->getType());
37 38
    }
}