TableDiffTest.php 1.59 KB
Newer Older
1 2
<?php

3
namespace Doctrine\DBAL\Tests\Schema;
4

5
use Doctrine\DBAL\Platforms\AbstractPlatform;
6
use Doctrine\DBAL\Schema\Identifier;
Sergei Morozov's avatar
Sergei Morozov committed
7
use Doctrine\DBAL\Schema\Table;
8
use Doctrine\DBAL\Schema\TableDiff;
9
use PHPUnit\Framework\MockObject\MockObject;
Sergei Morozov's avatar
Sergei Morozov committed
10
use PHPUnit\Framework\TestCase;
11

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

17
    public function setUp(): void
18 19 20 21
    {
        $this->platform = $this->createMock(AbstractPlatform::class);
    }

22 23 24
    /**
     * @group DBAL-1013
     */
25
    public function testReturnsName(): void
26 27 28
    {
        $tableDiff = new TableDiff('foo');

29
        self::assertEquals(new Identifier('foo'), $tableDiff->getName($this->platform));
30 31 32 33 34
    }

    /**
     * @group DBAL-1016
     */
35
    public function testPrefersNameFromTableObject(): void
36
    {
37
        $tableMock = $this->getMockBuilder(Table::class)
38 39 40
            ->disableOriginalConstructor()
            ->getMock();

Sergei Morozov's avatar
Sergei Morozov committed
41
        $tableDiff            = new TableDiff('foo');
42 43
        $tableDiff->fromTable = $tableMock;

44
        $tableMock->expects(self::once())
45
            ->method('getQuotedName')
46
            ->with($this->platform)
47
            ->will(self::returnValue('foo'));
48

49
        self::assertEquals(new Identifier('foo'), $tableDiff->getName($this->platform));
50 51 52 53 54
    }

    /**
     * @group DBAL-1013
     */
55
    public function testReturnsNewName(): void
56 57 58
    {
        $tableDiff = new TableDiff('foo');

59
        self::assertFalse($tableDiff->getNewName());
60 61 62

        $tableDiff->newName = 'bar';

63
        self::assertEquals(new Identifier('bar'), $tableDiff->getNewName());
64 65
    }
}