AbstractOracleDriverTest.php 2.93 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
<?php

namespace Doctrine\Tests\DBAL\Driver;

use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Platforms\OraclePlatform;
use Doctrine\DBAL\Schema\OracleSchemaManager;

class AbstractOracleDriverTest extends AbstractDriverTest
{
    public function testReturnsDatabaseName()
    {
        $params = array(
            'user'     => 'foo',
            'password' => 'bar',
            'dbname'   => 'baz',
        );

        $connection = $this->getConnectionMock();

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

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

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

        $connection = $this->getConnectionMock();

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

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

47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 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 98
    protected function createDriver()
    {
        return $this->getMockForAbstractClass('Doctrine\DBAL\Driver\AbstractOracleDriver');
    }

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

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

    protected function getExceptionConversionData()
    {
        return array(
            self::EXCEPTION_CONNECTION => array(
                array('1017', null, null),
                array('12545', null, null),
            ),
            self::EXCEPTION_FOREIGN_KEY_CONSTRAINT_VIOLATION => array(
                array('2292', null, null),
            ),
            self::EXCEPTION_INVALID_FIELD_NAME => array(
                array('904', null, null),
            ),
            self::EXCEPTION_NON_UNIQUE_FIELD_NAME => array(
                array('918', null, null),
                array('960', null, null),
            ),
            self::EXCEPTION_NOT_NULL_CONSTRAINT_VIOLATION => array(
                array('1400', null, null),
            ),
            self::EXCEPTION_SYNTAX_ERROR => array(
                array('923', null, null),
            ),
            self::EXCEPTION_TABLE_EXISTS => array(
                array('955', null, null),
            ),
            self::EXCEPTION_TABLE_NOT_FOUND => array(
                array('942', null, null),
            ),
            self::EXCEPTION_UNIQUE_CONSTRAINT_VIOLATION => array(
                array('1', null, null),
                array('2299', null, null),
                array('38911', null, null),
            ),
        );
    }
}