AbstractOracleDriverTest.php 3.07 KB
Newer Older
1 2
<?php

3
namespace Doctrine\DBAL\Tests\Driver;
4 5

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

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

        $connection = $this->getConnectionMock();

25
        $connection->expects(self::once())
26
            ->method('getParams')
27
            ->will(self::returnValue($params));
28

29
        self::assertSame($params['user'], $this->driver->getDatabase($connection));
30 31
    }

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

        $connection = $this->getConnectionMock();

44
        $connection->expects(self::once())
45
            ->method('getParams')
46
            ->will(self::returnValue($params));
47

48
        self::assertSame($params['user'], $this->driver->getDatabase($connection));
49 50
    }

51
    protected function createDriver() : Driver
52
    {
Sergei Morozov's avatar
Sergei Morozov committed
53
        return $this->getMockForAbstractClass(AbstractOracleDriver::class);
54 55
    }

56
    protected function createPlatform() : AbstractPlatform
57 58 59 60
    {
        return new OraclePlatform();
    }

61
    protected function createSchemaManager(Connection $connection) : AbstractSchemaManager
62 63 64 65
    {
        return new OracleSchemaManager($connection);
    }

66 67 68 69
    /**
     * {@inheritDoc}
     */
    protected static function getExceptionConversionData() : array
70
    {
Sergei Morozov's avatar
Sergei Morozov committed
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 98 99 100 101 102 103
        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],
            ],
        ];
104 105
    }
}