DBAL461Test.php 1.23 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 12 13 14

/**
 * @group DBAL-461
 */
Sergei Morozov's avatar
Sergei Morozov committed
15
class DBAL461Test extends TestCase
16
{
17
    public function testIssue() : void
18
    {
Sergei Morozov's avatar
Sergei Morozov committed
19 20
        $conn     = $this->createMock(Connection::class);
        $platform = $this->getMockForAbstractClass(AbstractPlatform::class);
21 22 23 24
        $platform->registerDoctrineTypeMapping('numeric', 'decimal');

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

Sergei Morozov's avatar
Sergei Morozov committed
25
        $reflectionMethod = new ReflectionMethod($schemaManager, '_getPortableTableColumnDefinition');
26
        $reflectionMethod->setAccessible(true);
Sergei Morozov's avatar
Sergei Morozov committed
27
        $column = $reflectionMethod->invoke($schemaManager, [
28 29 30 31 32 33 34 35
            '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
36
            'comment' => null,
Sergei Morozov's avatar
Sergei Morozov committed
37
        ]);
38

39
        self::assertInstanceOf(DecimalType::class, $column->getType());
40 41
    }
}