DriverTest.php 2.56 KB
Newer Older
1 2
<?php

Michael Moravec's avatar
Michael Moravec committed
3 4
declare(strict_types=1);

5
namespace Doctrine\DBAL\Tests\Driver\PDOPgSql;
6

7
use Doctrine\DBAL\Driver as DriverInterface;
Sergei Morozov's avatar
Sergei Morozov committed
8
use Doctrine\DBAL\Driver\PDOConnection;
9
use Doctrine\DBAL\Driver\PDOPgSql\Driver;
10
use Doctrine\DBAL\Tests\Driver\AbstractPostgreSQLDriverTest;
11
use PDO;
12 13 14

class DriverTest extends AbstractPostgreSQLDriverTest
{
15
    protected function setUp() : void
16
    {
17 18 19 20 21 22
        parent::setUp();

        if (isset($GLOBALS['db_type']) && $GLOBALS['db_type'] === 'pdo_pgsql') {
            return;
        }

23
        self::markTestSkipped('Test enabled only when using pdo_pgsql specific phpunit.xml');
24 25
    }

26 27 28
    /**
     * @group DBAL-920
     */
29
    public function testConnectionDisablesPrepares() : void
30
    {
31
        $connection = $this->createDriver()->connect(
Sergei Morozov's avatar
Sergei Morozov committed
32
            [
33
                'host' => $GLOBALS['db_host'],
Sergei Morozov's avatar
Sergei Morozov committed
34 35
                'port' => $GLOBALS['db_port'],
            ],
36 37 38 39
            $GLOBALS['db_username'],
            $GLOBALS['db_password']
        );

Sergei Morozov's avatar
Sergei Morozov committed
40
        self::assertInstanceOf(PDOConnection::class, $connection);
41 42 43
        self::assertTrue(
            $connection->getWrappedConnection()->getAttribute(PDO::PGSQL_ATTR_DISABLE_PREPARES)
        );
44 45
    }

46 47 48
    /**
     * @group DBAL-920
     */
49
    public function testConnectionDoesNotDisablePreparesWhenAttributeDefined() : void
50 51
    {
        $connection = $this->createDriver()->connect(
Sergei Morozov's avatar
Sergei Morozov committed
52
            [
53
                'host' => $GLOBALS['db_host'],
Sergei Morozov's avatar
Sergei Morozov committed
54 55
                'port' => $GLOBALS['db_port'],
            ],
56 57
            $GLOBALS['db_username'],
            $GLOBALS['db_password'],
Sergei Morozov's avatar
Sergei Morozov committed
58
            [PDO::PGSQL_ATTR_DISABLE_PREPARES => false]
59 60
        );

Sergei Morozov's avatar
Sergei Morozov committed
61
        self::assertInstanceOf(PDOConnection::class, $connection);
62 63 64
        self::assertNotTrue(
            $connection->getWrappedConnection()->getAttribute(PDO::PGSQL_ATTR_DISABLE_PREPARES)
        );
65 66
    }

67 68 69
    /**
     * @group DBAL-920
     */
70
    public function testConnectionDisablePreparesWhenDisablePreparesIsExplicitlyDefined() : void
71 72
    {
        $connection = $this->createDriver()->connect(
Sergei Morozov's avatar
Sergei Morozov committed
73
            [
74
                'host' => $GLOBALS['db_host'],
Sergei Morozov's avatar
Sergei Morozov committed
75 76
                'port' => $GLOBALS['db_port'],
            ],
77 78
            $GLOBALS['db_username'],
            $GLOBALS['db_password'],
Sergei Morozov's avatar
Sergei Morozov committed
79
            [PDO::PGSQL_ATTR_DISABLE_PREPARES => true]
80 81
        );

Sergei Morozov's avatar
Sergei Morozov committed
82
        self::assertInstanceOf(PDOConnection::class, $connection);
83 84 85
        self::assertTrue(
            $connection->getWrappedConnection()->getAttribute(PDO::PGSQL_ATTR_DISABLE_PREPARES)
        );
86 87
    }

88
    protected function createDriver() : DriverInterface
89 90 91 92
    {
        return new Driver();
    }
}