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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
<?php
namespace Doctrine\DBAL\Tests\Functional\Driver\PDO\PgSQL;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Driver\PDO\PgSQL\Driver;
use Doctrine\DBAL\Tests\Functional\Driver\AbstractPostgreSQLDriverTest;
use Doctrine\DBAL\Tests\TestUtil;
/** @requires extension pdo_pgsql */
class DriverTest extends AbstractPostgreSQLDriverTest
{
protected function setUp(): void
{
parent::setUp();
if (TestUtil::isDriverOneOf('pdo_pgsql')) {
return;
}
self::markTestSkipped('This test requires the pdo_pgsql driver.');
}
/** @dataProvider getDatabaseParameter */
public function testDatabaseParameters(
?string $databaseName,
?string $defaultDatabaseName,
?string $expectedDatabaseName
): void {
$params = $this->connection->getParams();
if ($databaseName !== null) {
$params['dbname'] = $databaseName;
} else {
unset($params['dbname']);
}
if ($defaultDatabaseName !== null) {
$params['default_dbname'] = $defaultDatabaseName;
}
$connection = new Connection(
$params,
$this->connection->getDriver(),
$this->connection->getConfiguration(),
$this->connection->getEventManager(),
);
self::assertSame(
$expectedDatabaseName,
$connection->getDatabase(),
);
}
/** @return mixed[][] */
public static function getDatabaseParameter(): iterable
{
$params = TestUtil::getConnectionParams();
$realDatabaseName = $params['dbname'] ?? '';
$dummyDatabaseName = $realDatabaseName . 'a';
return [
// dbname, default_dbname, expected
[$realDatabaseName, null, $realDatabaseName],
[$realDatabaseName, $dummyDatabaseName, $realDatabaseName],
[null, $realDatabaseName, $realDatabaseName],
[null, null, static::getDatabaseNameForConnectionWithoutDatabaseNameParameter()],
];
}
protected function createDriver(): Driver
{
return new Driver();
}
}
|