Skip to content

Commit

Permalink
Merge pull request #6766 from morozov/enable-test-quoted-identifiers-…
Browse files Browse the repository at this point in the history
…for-all-platforms

Enable SchemaManagerFunctionalTestCase::testQuotedIdentifiers() for more platforms
  • Loading branch information
morozov authored Feb 4, 2025
2 parents 2d52789 + 996fb41 commit c629755
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 19 deletions.
4 changes: 2 additions & 2 deletions tests/Functional/Schema/SQLiteSchemaManagerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -214,15 +214,15 @@ public function testNonSimpleAlterTableCreatedFromDDL(): void

$table1 = $schemaManager->introspectTable('nodes');
$table2 = clone $table1;
$table2->addIndex(['name'], 'idx_name');
$table2->addIndex(['name'], 'idx_node_name');

$comparator = $schemaManager->createComparator();
$diff = $comparator->compareTables($table1, $table2);

$schemaManager->alterTable($diff);

$table = $schemaManager->introspectTable('nodes');
$index = $table->getIndex('idx_name');
$index = $table->getIndex('idx_node_name');
self::assertSame(['name'], $index->getColumns());
}

Expand Down
32 changes: 15 additions & 17 deletions tests/Functional/Schema/SchemaManagerFunctionalTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
use Doctrine\DBAL\Platforms\AbstractPlatform;
use Doctrine\DBAL\Platforms\DB2Platform;
use Doctrine\DBAL\Platforms\OraclePlatform;
use Doctrine\DBAL\Platforms\PostgreSQLPlatform;
use Doctrine\DBAL\Platforms\SQLitePlatform;
use Doctrine\DBAL\Schema\AbstractAsset;
use Doctrine\DBAL\Schema\AbstractSchemaManager;
Expand Down Expand Up @@ -1269,14 +1268,10 @@ public function testQuotedIdentifiers(): void
);
}

if (! $platform instanceof OraclePlatform && ! $platform instanceof PostgreSQLPlatform) {
self::markTestSkipped('The current platform does not auto-quote introspected identifiers.');
}

$artists = new Table('"Artists"');
$artists->addColumn('"Id"', Types::INTEGER);
$artists->addColumn('"Name"', Types::INTEGER);
$artists->addIndex(['"Name"'], '"Idx_Name"');
$artists->addIndex(['"Name"'], '"Idx_Artist_Name"');
$artists->setPrimaryKey(['"Id"']);

$tracks = new Table('"Tracks"');
Expand All @@ -1292,17 +1287,15 @@ public function testQuotedIdentifiers(): void
);
$tracks->setPrimaryKey(['"Id"']);

$this->dropTableIfExists('"Tracks"');
$this->dropTableIfExists('"Artists"');
$this->dropTableIfExists($tracks->getObjectName()->toSQL($platform));
$this->dropTableIfExists($artists->getObjectName()->toSQL($platform));

$this->schemaManager->createTable($artists);
$this->schemaManager->createTable($tracks);

$artists = $this->schemaManager->introspectTable('"Artists"');
$tracks = $this->schemaManager->introspectTable('"Tracks"');

$platform = $this->connection->getDatabasePlatform();

// Primary table assertions
self::assertOptionallyQualifiedNameEquals(
OptionallyQualifiedName::quoted('Artists'),
Expand All @@ -1319,11 +1312,15 @@ public function testQuotedIdentifiers(): void
$artists->getColumn('"Name"')->getObjectName(),
);

self::assertSame(['"Name"'], $artists->getIndex('"Idx_Name"')->getQuotedColumns($platform));
self::assertSame([
$platform->quoteSingleIdentifier('Name'),
], $artists->getIndex('"Idx_Artist_Name"')->getQuotedColumns($platform));

$primaryKey = $artists->getPrimaryKey();
self::assertNotNull($primaryKey);
self::assertSame(['"Id"'], $primaryKey->getQuotedColumns($platform));
self::assertSame([
$platform->quoteSingleIdentifier('Id'),
], $primaryKey->getQuotedColumns($platform));

// Foreign table assertions
self::assertUnqualifiedNameEquals(
Expand All @@ -1333,18 +1330,19 @@ public function testQuotedIdentifiers(): void

$primaryKey = $tracks->getPrimaryKey();
self::assertNotNull($primaryKey);
self::assertSame(['"Id"'], $primaryKey->getQuotedColumns($platform));
self::assertSame([
$platform->quoteSingleIdentifier('Id'),
], $primaryKey->getQuotedColumns($platform));

self::assertUnqualifiedNameEquals(
UnqualifiedName::quoted('Artist_Id'),
$tracks->getColumn('"Artist_Id"')->getObjectName(),
);

self::assertTrue($tracks->hasIndex('"Idx_Artist_Id"'));
self::assertSame(
['"Artist_Id"'],
$tracks->getIndex('"Idx_Artist_Id"')->getQuotedColumns($platform),
);
self::assertSame([
$platform->quoteSingleIdentifier('Artist_Id'),
], $tracks->getIndex('"Idx_Artist_Id"')->getQuotedColumns($platform));

$constraint = $tracks->getForeignKey('"Artists_Fk"');

Expand Down

0 comments on commit c629755

Please sign in to comment.