PDOPgsqlConnectionTest.php 1.46 KB
Newer Older
1 2 3 4 5
<?php

namespace Doctrine\Tests\DBAL\Functional\Driver;

use Doctrine\DBAL\DriverManager;
6
use Doctrine\DBAL\FetchMode;
7 8
use Doctrine\DBAL\Platforms\PostgreSqlPlatform;
use Doctrine\Tests\DbalFunctionalTestCase;
9
use function extension_loaded;
10 11 12 13 14

class PDOPgsqlConnectionTest extends DbalFunctionalTestCase
{
    protected function setUp()
    {
Sergei Morozov's avatar
Sergei Morozov committed
15
        if (! extension_loaded('pdo_pgsql')) {
16 17 18 19 20
            $this->markTestSkipped('pdo_pgsql is not loaded.');
        }

        parent::setUp();

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

        $this->markTestSkipped('PDOPgsql only test.');
26 27 28
    }

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

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

46 47
        self::assertEquals(
            $charset,
48
            $connection->query('SHOW client_encoding')
49 50
                ->fetch(FetchMode::COLUMN)
        );
51 52
    }

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