forked from doctrine/dbal
/
RenameColumnTest.php
45 lines (34 loc) · 1.38 KB
/
RenameColumnTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
declare(strict_types=1);
namespace Doctrine\DBAL\Tests\Functional\Platform;
use Doctrine\DBAL\Schema\Table;
use Doctrine\DBAL\Tests\FunctionalTestCase;
class RenameColumnTest extends FunctionalTestCase
{
/** @dataProvider columnNameProvider */
public function testColumnPositionRetainedAfterRenaming(string $columnName, string $newColumnName): void
{
$table = new Table('test_rename');
$table->addColumn($columnName, 'string', ['length' => 16]);
$table->addColumn('c2', 'integer');
$this->dropAndCreateTable($table);
$table->dropColumn($columnName)
->addColumn($newColumnName, 'string', ['length' => 16]);
$sm = $this->connection->createSchemaManager();
$diff = $sm->createComparator()
->compareTables($sm->introspectTable('test_rename'), $table);
$sm->alterTable($diff);
$table = $sm->introspectTable('test_rename');
$columns = $table->getColumns();
self::assertCount(2, $columns);
self::assertEqualsIgnoringCase($newColumnName, $columns[0]->getName());
self::assertEqualsIgnoringCase('c2', $columns[1]->getName());
}
/** @return iterable<array{string}> */
public static function columnNameProvider(): iterable
{
yield ['c1', 'c1_x'];
yield ['C1', 'c1_x'];
yield ['importantColumn', 'veryImportantColumn'];
}
}