AbstractPostgreSQLDriverTest.php 2.35 KB
Newer Older
1 2
<?php

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

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

use Doctrine\DBAL\Connection;
8
use Doctrine\DBAL\Driver;
Sergei Morozov's avatar
Sergei Morozov committed
9
use Doctrine\DBAL\Driver\AbstractPostgreSQLDriver;
10
use Doctrine\DBAL\Platforms\AbstractPlatform;
11
use Doctrine\DBAL\Platforms\PostgreSQL100Platform;
12
use Doctrine\DBAL\Platforms\PostgreSqlPlatform;
13
use Doctrine\DBAL\Schema\AbstractSchemaManager;
14 15 16 17
use Doctrine\DBAL\Schema\PostgreSqlSchemaManager;

class AbstractPostgreSQLDriverTest extends AbstractDriverTest
{
18
    protected function createDriver() : Driver
19
    {
Sergei Morozov's avatar
Sergei Morozov committed
20
        return $this->getMockForAbstractClass(AbstractPostgreSQLDriver::class);
21 22
    }

23
    protected function createPlatform() : AbstractPlatform
24 25 26 27
    {
        return new PostgreSqlPlatform();
    }

28
    protected function createSchemaManager(Connection $connection) : AbstractSchemaManager
29 30 31 32
    {
        return new PostgreSqlSchemaManager($connection);
    }

33 34 35 36
    /**
     * {@inheritDoc}
     */
    protected function getDatabasePlatformsForVersions() : array
37
    {
Sergei Morozov's avatar
Sergei Morozov committed
38
        return [
39 40 41
            ['9.4', PostgreSqlPlatform::class],
            ['9.4.0', PostgreSqlPlatform::class],
            ['9.4.1', PostgreSqlPlatform::class],
Sergei Morozov's avatar
Sergei Morozov committed
42 43
            ['10', PostgreSQL100Platform::class],
        ];
44 45
    }

46 47 48 49
    /**
     * {@inheritDoc}
     */
    protected static function getExceptionConversionData() : array
50
    {
Sergei Morozov's avatar
Sergei Morozov committed
51 52
        return [
            self::EXCEPTION_CONNECTION => [
53
                [7, null, 'SQLSTATE[08006]'],
Sergei Morozov's avatar
Sergei Morozov committed
54 55
            ],
            self::EXCEPTION_FOREIGN_KEY_CONSTRAINT_VIOLATION => [
56
                [0, '23503'],
Sergei Morozov's avatar
Sergei Morozov committed
57 58
            ],
            self::EXCEPTION_INVALID_FIELD_NAME => [
59
                [0, '42703'],
Sergei Morozov's avatar
Sergei Morozov committed
60 61
            ],
            self::EXCEPTION_NON_UNIQUE_FIELD_NAME => [
62
                [0, '42702'],
Sergei Morozov's avatar
Sergei Morozov committed
63 64
            ],
            self::EXCEPTION_NOT_NULL_CONSTRAINT_VIOLATION => [
65
                [0, '23502'],
Sergei Morozov's avatar
Sergei Morozov committed
66 67
            ],
            self::EXCEPTION_SYNTAX_ERROR => [
68
                [0, '42601'],
Sergei Morozov's avatar
Sergei Morozov committed
69 70
            ],
            self::EXCEPTION_TABLE_EXISTS => [
71
                [0, '42P07'],
Sergei Morozov's avatar
Sergei Morozov committed
72 73
            ],
            self::EXCEPTION_TABLE_NOT_FOUND => [
74
                [0, '42P01'],
Sergei Morozov's avatar
Sergei Morozov committed
75 76
            ],
            self::EXCEPTION_UNIQUE_CONSTRAINT_VIOLATION => [
77
                [0, '23505'],
Sergei Morozov's avatar
Sergei Morozov committed
78 79
            ],
            self::EXCEPTION_DEADLOCK => [
80 81
                [0, '40001'],
                [0, '40P01'],
Sergei Morozov's avatar
Sergei Morozov committed
82 83
            ],
        ];
84 85
    }
}