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

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

5
namespace Doctrine\DBAL\Tests\Functional\Ticket;
6

Sergei Morozov's avatar
Sergei Morozov committed
7 8
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Platforms\AbstractPlatform;
9
use Doctrine\DBAL\Schema\SQLServerSchemaManager;
10
use Doctrine\DBAL\Types\DecimalType;
Sergei Morozov's avatar
Sergei Morozov committed
11 12
use PHPUnit\Framework\TestCase;
use ReflectionMethod;
13 14 15 16

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

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

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

41
        $this->assertInstanceOf(DecimalType::class, $column->getType());
42 43
    }
}