AbstractSQLiteDriverTest.php 2.3 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\AbstractSQLiteDriver;
10
use Doctrine\DBAL\Platforms\AbstractPlatform;
11
use Doctrine\DBAL\Platforms\SqlitePlatform;
12
use Doctrine\DBAL\Schema\AbstractSchemaManager;
13 14 15 16
use Doctrine\DBAL\Schema\SqliteSchemaManager;

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

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

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

32 33 34 35
    /**
     * {@inheritDoc}
     */
    protected static function getExceptionConversionData() : array
36
    {
Sergei Morozov's avatar
Sergei Morozov committed
37 38
        return [
            self::EXCEPTION_CONNECTION => [
39
                [0, null, 'unable to open database file'],
Sergei Morozov's avatar
Sergei Morozov committed
40 41
            ],
            self::EXCEPTION_INVALID_FIELD_NAME => [
42
                [0, null, 'has no column named'],
Sergei Morozov's avatar
Sergei Morozov committed
43 44
            ],
            self::EXCEPTION_NON_UNIQUE_FIELD_NAME => [
45
                [0, null, 'ambiguous column name'],
Sergei Morozov's avatar
Sergei Morozov committed
46 47
            ],
            self::EXCEPTION_NOT_NULL_CONSTRAINT_VIOLATION => [
48
                [0, null, 'may not be NULL'],
Sergei Morozov's avatar
Sergei Morozov committed
49 50
            ],
            self::EXCEPTION_READ_ONLY => [
51
                [0, null, 'attempt to write a readonly database'],
Sergei Morozov's avatar
Sergei Morozov committed
52 53
            ],
            self::EXCEPTION_SYNTAX_ERROR => [
54
                [0, null, 'syntax error'],
Sergei Morozov's avatar
Sergei Morozov committed
55 56
            ],
            self::EXCEPTION_TABLE_EXISTS => [
57
                [0, null, 'already exists'],
Sergei Morozov's avatar
Sergei Morozov committed
58 59
            ],
            self::EXCEPTION_TABLE_NOT_FOUND => [
60
                [0, null, 'no such table:'],
Sergei Morozov's avatar
Sergei Morozov committed
61 62
            ],
            self::EXCEPTION_UNIQUE_CONSTRAINT_VIOLATION => [
63 64 65
                [0, null, 'must be unique'],
                [0, null, 'is not unique'],
                [0, null, 'are not unique'],
Sergei Morozov's avatar
Sergei Morozov committed
66
            ],
67
            self::EXCEPTION_FOREIGN_KEY_CONSTRAINT_VIOLATION => [
Benjamin Morel's avatar
Benjamin Morel committed
68
                [0, null, 'FOREIGN KEY constraint failed'],
69
            ],
Sergei Morozov's avatar
Sergei Morozov committed
70
            self::EXCEPTION_LOCK_WAIT_TIMEOUT => [
71
                [0, null, 'database is locked'],
Sergei Morozov's avatar
Sergei Morozov committed
72 73
            ],
        ];
74 75
    }
}