Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / dbal / tests / Doctrine / Tests / DBAL / ConnectionTest.php
diff --git a/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/ConnectionTest.php b/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/ConnectionTest.php
new file mode 100644 (file)
index 0000000..48fbb69
--- /dev/null
@@ -0,0 +1,177 @@
+<?php
+
+namespace Doctrine\Tests\DBAL;
+
+require_once __DIR__ . '/../TestInit.php';
+
+use Doctrine\DBAL\Connection;
+use Doctrine\Common\EventManager;
+use Doctrine\DBAL\Configuration;
+use Doctrine\DBAL\Events;
+
+class ConnectionTest extends \Doctrine\Tests\DbalTestCase
+{
+    /**
+     * @var Doctrine\DBAL\Connection
+     */
+    protected $_conn = null;
+
+    public function setUp()
+    {
+        $params = array(
+            'driver' => 'pdo_mysql',
+            'host' => 'localhost',
+            'user' => 'root',
+            'password' => 'password',
+            'port' => '1234'
+        );
+        $this->_conn = \Doctrine\DBAL\DriverManager::getConnection($params);
+    }
+
+    public function testIsConnected()
+    {
+        $this->assertFalse($this->_conn->isConnected());
+    }
+
+    public function testNoTransactionActiveByDefault()
+    {
+        $this->assertFalse($this->_conn->isTransactionActive());
+    }
+
+    public function testCommitWithNoActiveTransaction_ThrowsException()
+    {
+        $this->setExpectedException('Doctrine\DBAL\ConnectionException');
+        $this->_conn->commit();
+    }
+
+    public function testRollbackWithNoActiveTransaction_ThrowsException()
+    {
+        $this->setExpectedException('Doctrine\DBAL\ConnectionException');
+        $this->_conn->rollback();
+    }
+
+    public function testSetRollbackOnlyNoActiveTransaction_ThrowsException()
+    {
+        $this->setExpectedException('Doctrine\DBAL\ConnectionException');
+        $this->_conn->setRollbackOnly();
+    }
+
+    public function testIsRollbackOnlyNoActiveTransaction_ThrowsException()
+    {
+        $this->setExpectedException('Doctrine\DBAL\ConnectionException');
+        $this->_conn->isRollbackOnly();
+    }
+
+    public function testGetConfiguration()
+    {
+        $config = $this->_conn->getConfiguration();
+
+        $this->assertInstanceOf('Doctrine\DBAL\Configuration', $config);
+    }
+
+    public function testGetHost()
+    {
+        $this->assertEquals('localhost', $this->_conn->getHost());
+    }
+
+    public function testGetPort()
+    {
+        $this->assertEquals('1234', $this->_conn->getPort());
+    }
+
+    public function testGetUsername()
+    {
+        $this->assertEquals('root', $this->_conn->getUsername());
+    }
+
+    public function testGetPassword()
+    {
+        $this->assertEquals('password', $this->_conn->getPassword());
+    }
+
+    public function testGetDriver()
+    {
+        $this->assertInstanceOf('Doctrine\DBAL\Driver\PDOMySql\Driver', $this->_conn->getDriver());
+    }
+
+    public function testGetEventManager()
+    {
+        $this->assertInstanceOf('Doctrine\Common\EventManager', $this->_conn->getEventManager());
+    }
+
+    public function testConnectDispatchEvent()
+    {
+        $listenerMock = $this->getMock('ConnectDispatchEventListener', array('postConnect'));
+        $listenerMock->expects($this->once())->method('postConnect');
+
+        $eventManager = new EventManager();
+        $eventManager->addEventListener(array(Events::postConnect), $listenerMock);
+
+        $driverMock = $this->getMock('Doctrine\DBAL\Driver');
+        $driverMock->expects(($this->at(0)))
+                   ->method('connect');
+        $platform = new Mocks\MockPlatform();
+
+        $conn = new Connection(array('platform' => $platform), $driverMock, new Configuration(), $eventManager);
+        $conn->connect();
+    }
+
+    public function testEventManagerPassedToPlatform()
+    {
+        $this->assertInstanceOf('Doctrine\Common\EventManager', $this->_conn->getDatabasePlatform()->getEventManager());
+        $this->assertSame($this->_conn->getEventManager(), $this->_conn->getDatabasePlatform()->getEventManager());
+    }
+
+    /**
+     * @expectedException Doctrine\DBAL\DBALException
+     * @dataProvider getQueryMethods
+     */
+    public function testDriverExceptionIsWrapped($method)
+    {
+        $this->setExpectedException('Doctrine\DBAL\DBALException', "An exception occurred while executing 'MUUHAAAAHAAAA':
+
+SQLSTATE[HY000]: General error: 1 near \"MUUHAAAAHAAAA\"");
+
+        $con = \Doctrine\DBAL\DriverManager::getConnection(array(
+            'driver' => 'pdo_sqlite',
+            'memory' => true,
+        ));
+
+        $con->$method('MUUHAAAAHAAAA');
+    }
+
+    public function getQueryMethods()
+    {
+        return array(
+            array('exec'),
+            array('query'),
+            array('executeQuery'),
+            array('executeUpdate'),
+            array('prepare'),
+        );
+    }
+
+    /**
+     * Pretty dumb test, however we want to check that the EchoSQLLogger correctly implements the interface.
+     *
+     * @group DBAL-11
+     */
+    public function testEchoSQLLogger()
+    {
+        $logger = new \Doctrine\DBAL\Logging\EchoSQLLogger();
+        $this->_conn->getConfiguration()->setSQLLogger($logger);
+        $this->assertSame($logger, $this->_conn->getConfiguration()->getSQLLogger());
+    }
+
+    /**
+     * Pretty dumb test, however we want to check that the DebugStack correctly implements the interface.
+     *
+     * @group DBAL-11
+     */
+    public function testDebugSQLStack()
+    {
+        $logger = new \Doctrine\DBAL\Logging\DebugStack();
+        $this->_conn->getConfiguration()->setSQLLogger($logger);
+        $this->assertSame($logger, $this->_conn->getConfiguration()->getSQLLogger());
+    }
+}
\ No newline at end of file