PDOPgsqlConnectionTest.php 1.42 KB
Newer Older
1 2
<?php

3
namespace Doctrine\DBAL\Tests\Functional\Driver;
4 5

use Doctrine\DBAL\DriverManager;
6
use Doctrine\DBAL\Platforms\PostgreSQL94Platform;
7
use Doctrine\DBAL\Tests\FunctionalTestCase;
8

9
use function extension_loaded;
10

11
class PDOPgsqlConnectionTest extends FunctionalTestCase
12
{
13
    protected function setUp(): void
14
    {
Sergei Morozov's avatar
Sergei Morozov committed
15
        if (! extension_loaded('pdo_pgsql')) {
16
            self::markTestSkipped('pdo_pgsql is not loaded.');
17 18 19 20
        }

        parent::setUp();

21
        if ($this->connection->getDatabasePlatform() instanceof PostgreSQL94Platform) {
Sergei Morozov's avatar
Sergei Morozov committed
22
            return;
23
        }
Sergei Morozov's avatar
Sergei Morozov committed
24

25
        self::markTestSkipped('PDOPgsql only test.');
26 27 28
    }

    /**
Steve Müller's avatar
Steve Müller committed
29 30
     * @group DBAL-1183
     * @group DBAL-1189
31
     * @dataProvider getValidCharsets
32
     */
33
    public function testConnectsWithValidCharsetOption(string $charset): void
34
    {
Sergei Morozov's avatar
Sergei Morozov committed
35
        $params            = $this->connection->getParams();
36 37 38 39
        $params['charset'] = $charset;

        $connection = DriverManager::getConnection(
            $params,
Sergei Morozov's avatar
Sergei Morozov committed
40 41
            $this->connection->getConfiguration(),
            $this->connection->getEventManager()
42 43
        );

44 45
        self::assertEquals(
            $charset,
46
            $connection->query('SHOW client_encoding')
47
                ->fetchOne()
48
        );
49 50
    }

Steve Müller's avatar
Steve Müller committed
51
    /**
Sergei Morozov's avatar
Sergei Morozov committed
52
     * @return mixed[][]
Steve Müller's avatar
Steve Müller committed
53
     */
54
    public static function getValidCharsets(): iterable
55
    {
Sergei Morozov's avatar
Sergei Morozov committed
56 57 58 59
        return [
            ['UTF8'],
            ['LATIN1'],
        ];
60 61
    }
}