Skip to content

Commit

Permalink
Move deprecated method getRenamedColumn to test class
Browse files Browse the repository at this point in the history
  • Loading branch information
Tofandel committed Feb 20, 2024
1 parent da6c67b commit 1be377a
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 37 deletions.
1 change: 0 additions & 1 deletion psalm.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@

<!-- TODO for PHPUnit 11 -->
<referencedMethod name="PHPUnit\Framework\TestCase::iniSet"/>
<referencedMethod name="Doctrine\DBAL\Schema\TableDiff::getRenamedColumns"/>
</errorLevel>
</DeprecatedMethod>
<DocblockTypeContradiction>
Expand Down
28 changes: 0 additions & 28 deletions src/Schema/TableDiff.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

namespace Doctrine\DBAL\Schema;

use Doctrine\Deprecations\Deprecation;

use function array_filter;
use function count;

Expand Down Expand Up @@ -68,32 +66,6 @@ public function getDroppedColumns(): array
return $this->droppedColumns;
}

/**
* @deprecated Use {@see getModifiedColumns()} instead.
*
* @return array<string,Column>
*/
public function getRenamedColumns(): array
{
Deprecation::triggerIfCalledFromOutside(
'doctrine/dbal',
'https://github.com/doctrine/dbal/pull/6080',
'%s is deprecated, you should use `getModifiedColumns()` instead.',
__METHOD__,
);
$renamed = [];
foreach ($this->getChangedColumns() as $diff) {
if (! $diff->hasNameChanged()) {
continue;
}

$oldColumnName = $diff->getOldColumn()->getName();
$renamed[$oldColumnName] = $diff->getNewColumn();
}

return $renamed;
}

/** @return array<Index> */
public function getAddedIndexes(): array
{
Expand Down
20 changes: 19 additions & 1 deletion tests/Functional/Platform/RenameColumnTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@

namespace Doctrine\DBAL\Tests\Functional\Platform;

use Doctrine\DBAL\Schema\Column;
use Doctrine\DBAL\Schema\Table;
use Doctrine\DBAL\Schema\TableDiff;
use Doctrine\DBAL\Tests\FunctionalTestCase;
use Doctrine\DBAL\Types\Type;
use Doctrine\DBAL\Types\Types;
Expand Down Expand Up @@ -35,7 +37,23 @@ public function testColumnPositionRetainedAfterImplicitRenaming(string $columnNa
self::assertCount(2, $columns);
self::assertEqualsIgnoringCase($newColumnName, $columns[0]->getName());
self::assertEqualsIgnoringCase('c2', $columns[1]->getName());
self::assertCount(1, $diff->getRenamedColumns());
self::assertCount(1, self::getRenamedColumns($diff));
}

/** @return array<string,Column> */
public static function getRenamedColumns(TableDiff $tableDiff): array
{
$renamed = [];
foreach ($tableDiff->getChangedColumns() as $diff) {
if (! $diff->hasNameChanged()) {
continue;
}

$oldColumnName = $diff->getOldColumn()->getName();
$renamed[$oldColumnName] = $diff->getNewColumn();
}

return $renamed;
}

/** @dataProvider columnNameProvider */
Expand Down
8 changes: 5 additions & 3 deletions tests/Functional/Schema/ComparatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use Doctrine\DBAL\Schema\AbstractSchemaManager;
use Doctrine\DBAL\Schema\Comparator;
use Doctrine\DBAL\Schema\Table;
use Doctrine\DBAL\Tests\Functional\Platform\RenameColumnTest;
use Doctrine\DBAL\Tests\FunctionalTestCase;
use Doctrine\DBAL\Types\Type;
use Doctrine\DBAL\Types\Types;
Expand Down Expand Up @@ -70,10 +71,11 @@ public function testRenameColumnComparison(): void
->setNotnull(false)
->setType(Type::getType(Types::BIGINT));

$compareResult = $comparator->compareTables($onlineTable, $table);
$compareResult = $comparator->compareTables($onlineTable, $table);
$renamedColumns = RenameColumnTest::getRenamedColumns($compareResult);
self::assertCount(3, $compareResult->getChangedColumns());
self::assertCount(2, $compareResult->getRenamedColumns());
self::assertArrayHasKey('test2', $compareResult->getRenamedColumns());
self::assertCount(2, $renamedColumns);
self::assertArrayHasKey('test2', $renamedColumns);

$renamedOnly = $compareResult->getChangedColumns()['test2'];
$renamedAndModified = $compareResult->getChangedColumns()['test'];
Expand Down
9 changes: 5 additions & 4 deletions tests/Schema/AbstractComparatorTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
use Doctrine\DBAL\Schema\Sequence;
use Doctrine\DBAL\Schema\Table;
use Doctrine\DBAL\Schema\TableDiff;
use Doctrine\DBAL\Tests\Functional\Platform\RenameColumnTest;
use Doctrine\DBAL\Types\Type;
use Doctrine\DBAL\Types\Types;
use PHPUnit\Framework\TestCase;
Expand Down Expand Up @@ -174,7 +175,7 @@ public function testCompareChangeColumnsMultipleNewColumnsRename(): void

$tableDiff = $this->comparator->compareTables($tableA, $tableB);

$renamedColumns = $tableDiff->getRenamedColumns();
$renamedColumns = RenameColumnTest::getRenamedColumns($tableDiff);
self::assertCount(1, $renamedColumns);
self::assertArrayHasKey('datecolumn1', $renamedColumns);
self::assertEquals(['new_datecolumn2'], $this->getAssetNames($tableDiff->getAddedColumns()));
Expand Down Expand Up @@ -391,7 +392,7 @@ public function testDetectRenameColumn(): void
self::assertCount(0, $tableDiff->getAddedColumns());
self::assertCount(0, $tableDiff->getDroppedColumns());

$renamedColumns = $tableDiff->getRenamedColumns();
$renamedColumns = RenameColumnTest::getRenamedColumns($tableDiff);
self::assertArrayHasKey('foo', $renamedColumns);
self::assertEquals('bar', $renamedColumns['foo']->getName());
}
Expand All @@ -414,7 +415,7 @@ public function testDetectRenameColumnAmbiguous(): void

self::assertEquals(['baz'], $this->getAssetNames($tableDiff->getAddedColumns()));
self::assertEquals(['foo', 'bar'], $this->getAssetNames($tableDiff->getDroppedColumns()));
self::assertCount(0, $tableDiff->getRenamedColumns());
self::assertCount(0, RenameColumnTest::getRenamedColumns($tableDiff));
}

public function testDetectRenameIndex(): void
Expand Down Expand Up @@ -496,7 +497,7 @@ public function testDiff(): void

$tableDiff = $this->comparator->compareTables($table, $newtable);

self::assertEquals(['twitterId', 'displayName'], array_keys($tableDiff->getRenamedColumns()));
self::assertEquals(['twitterId', 'displayName'], array_keys(RenameColumnTest::getRenamedColumns($tableDiff)));
self::assertEquals(['logged_in_at'], $this->getAssetNames($tableDiff->getAddedColumns()));
self::assertCount(0, $tableDiff->getDroppedColumns());
}
Expand Down

0 comments on commit 1be377a

Please sign in to comment.