AbstractOracleDriverTest.php 2.84 KB
Newer Older
1 2 3 4 5
<?php

namespace Doctrine\Tests\DBAL\Driver;

use Doctrine\DBAL\Connection;
Sergei Morozov's avatar
Sergei Morozov committed
6
use Doctrine\DBAL\Driver\AbstractOracleDriver;
7 8 9 10 11 12 13
use Doctrine\DBAL\Platforms\OraclePlatform;
use Doctrine\DBAL\Schema\OracleSchemaManager;

class AbstractOracleDriverTest extends AbstractDriverTest
{
    public function testReturnsDatabaseName()
    {
Sergei Morozov's avatar
Sergei Morozov committed
14
        $params = [
15 16 17
            'user'     => 'foo',
            'password' => 'bar',
            'dbname'   => 'baz',
Sergei Morozov's avatar
Sergei Morozov committed
18
        ];
19 20 21 22 23 24 25

        $connection = $this->getConnectionMock();

        $connection->expects($this->once())
            ->method('getParams')
            ->will($this->returnValue($params));

26
        self::assertSame($params['user'], $this->driver->getDatabase($connection));
27 28
    }

29 30
    public function testReturnsDatabaseNameWithConnectDescriptor()
    {
Sergei Morozov's avatar
Sergei Morozov committed
31
        $params = [
32 33 34 35
            'user'             => 'foo',
            'password'         => 'bar',
            'connectionstring' => '(DESCRIPTION=' .
                '(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' .
Sergei Morozov's avatar
Sergei Morozov committed
36 37
                '(CONNECT_DATA=(SERVICE_NAME=baz)))',
        ];
38 39 40 41 42 43 44

        $connection = $this->getConnectionMock();

        $connection->expects($this->once())
            ->method('getParams')
            ->will($this->returnValue($params));

45
        self::assertSame($params['user'], $this->driver->getDatabase($connection));
46 47
    }

48 49
    protected function createDriver()
    {
Sergei Morozov's avatar
Sergei Morozov committed
50
        return $this->getMockForAbstractClass(AbstractOracleDriver::class);
51 52 53 54 55 56 57 58 59 60 61 62 63 64
    }

    protected function createPlatform()
    {
        return new OraclePlatform();
    }

    protected function createSchemaManager(Connection $connection)
    {
        return new OracleSchemaManager($connection);
    }

    protected function getExceptionConversionData()
    {
Sergei Morozov's avatar
Sergei Morozov committed
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
        return [
            self::EXCEPTION_CONNECTION => [
                ['1017', null, null],
                ['12545', null, null],
            ],
            self::EXCEPTION_FOREIGN_KEY_CONSTRAINT_VIOLATION => [
                ['2292', null, null],
            ],
            self::EXCEPTION_INVALID_FIELD_NAME => [
                ['904', null, null],
            ],
            self::EXCEPTION_NON_UNIQUE_FIELD_NAME => [
                ['918', null, null],
                ['960', null, null],
            ],
            self::EXCEPTION_NOT_NULL_CONSTRAINT_VIOLATION => [
                ['1400', null, null],
            ],
            self::EXCEPTION_SYNTAX_ERROR => [
                ['923', null, null],
            ],
            self::EXCEPTION_TABLE_EXISTS => [
                ['955', null, null],
            ],
            self::EXCEPTION_TABLE_NOT_FOUND => [
                ['942', null, null],
            ],
            self::EXCEPTION_UNIQUE_CONSTRAINT_VIOLATION => [
                ['1', null, null],
                ['2299', null, null],
                ['38911', null, null],
            ],
        ];
98 99
    }
}