OracleSessionInitTest.php 1.69 KB
Newer Older
1 2 3 4 5
<?php

namespace Doctrine\Tests\DBAL\Events;

use Doctrine\DBAL\Event\ConnectionEventArgs;
jeroendedauw's avatar
jeroendedauw committed
6
use Doctrine\DBAL\Event\Listeners\OracleSessionInit;
7
use Doctrine\DBAL\Events;
jeroendedauw's avatar
jeroendedauw committed
8
use Doctrine\Tests\DbalTestCase;
9 10 11 12 13

class OracleSessionInitTest extends DbalTestCase
{
    public function testPostConnect()
    {
14
        $connectionMock = $this->createMock('Doctrine\DBAL\Connection');
15 16 17 18 19 20 21 22 23 24 25
        $connectionMock->expects($this->once())
                       ->method('executeUpdate')
                       ->with($this->isType('string'));

        $eventArgs = new ConnectionEventArgs($connectionMock);


        $listener = new OracleSessionInit();
        $listener->postConnect($eventArgs);
    }

26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
    /**
     * @group DBAL-1824
     *
     * @dataProvider getPostConnectWithSessionParameterValuesData
     */
    public function testPostConnectQuotesSessionParameterValues($name, $value)
    {
        $connectionMock = $this->getMockBuilder('Doctrine\DBAL\Connection')
            ->disableOriginalConstructor()
            ->getMock();
        $connectionMock->expects($this->once())
            ->method('executeUpdate')
            ->with($this->stringContains(sprintf('%s = %s', $name, $value)));

        $eventArgs = new ConnectionEventArgs($connectionMock);


        $listener = new OracleSessionInit(array($name => $value));
        $listener->postConnect($eventArgs);
    }

    public function getPostConnectWithSessionParameterValuesData()
    {
        return array(
            array('CURRENT_SCHEMA', 'foo'),
        );
    }

54 55 56
    public function testGetSubscribedEvents()
    {
        $listener = new OracleSessionInit();
57
        self::assertEquals(array(Events::postConnect), $listener->getSubscribedEvents());
58
    }
59
}