Переглянути джерело

[DoctrineBundle] added tests for registry

Benjamin Eberlei 14 роки тому
батько
коміт
2a5449dcb0
1 змінених файлів з 153 додано та 0 видалено
  1. 153 0
      src/Symfony/Bundle/DoctrineBundle/Tests/RegistryTest.php

+ 153 - 0
src/Symfony/Bundle/DoctrineBundle/Tests/RegistryTest.php

@@ -0,0 +1,153 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\DoctrineBundle\Tests;
+
+use Symfony\Bundle\DoctrineBundle\Registry;
+
+class RegistryTest extends \PHPUnit_Framework_TestCase
+{
+    public function setUp()
+    {
+        if (!class_exists('Doctrine\ORM\Version')) {
+            $this->markTestSkipped('Doctrine is required for this test to run.');
+        }
+    }
+
+    public function testGetDefaultConnectionName()
+    {
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+        $registry = new Registry($container, array(), array(), 'default', 'default');
+
+        $this->assertEquals('default', $registry->getDefaultConnectionName());
+    }
+
+    public function testGetDefaultEntityManagerName()
+    {
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+        $registry = new Registry($container, array(), array(), 'default', 'default');
+
+        $this->assertEquals('default', $registry->getDefaultEntityManagerName());
+    }
+
+    public function testGetDefaultConnection()
+    {
+        $conn = $this->getMock('Doctrine\DBAL\Connection', array(), array(), '', false);
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+        $container->expects($this->once())
+                  ->method('get')
+                  ->with($this->equalTo('doctrine.dbal.default_connection'))
+                  ->will($this->returnValue($conn));
+
+        $registry = new Registry($container, array('default' => 'doctrine.dbal.default_connection'), array(), 'default', 'default');
+
+        $this->assertSame($conn, $registry->getConnection());
+    }
+
+    public function testGetConnection()
+    {
+        $conn = $this->getMock('Doctrine\DBAL\Connection', array(), array(), '', false);
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+        $container->expects($this->once())
+                  ->method('get')
+                  ->with($this->equalTo('doctrine.dbal.default_connection'))
+                  ->will($this->returnValue($conn));
+
+        $registry = new Registry($container, array('default' => 'doctrine.dbal.default_connection'), array(), 'default', 'default');
+
+        $this->assertSame($conn, $registry->getConnection('default'));
+    }
+
+    public function testGetUnknownConnection()
+    {
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+        $registry = new Registry($container, array(), array(), 'default', 'default');
+
+        $this->setExpectedException('InvalidArgumentException', 'Doctrine Connection named "default" does not exist.');
+        $registry->getConnection('default');
+    }
+
+    public function testGetConnectionNames()
+    {
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+        $registry = new Registry($container, array('default' => 'doctrine.dbal.default_connection'), array(), 'default', 'default');
+
+        $this->assertEquals(array('default' => 'doctrine.dbal.default_connection'), $registry->getConnectionNames());
+    }
+
+    public function testGetDefaultEntityManager()
+    {
+        $em = new \stdClass();
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+        $container->expects($this->once())
+                  ->method('get')
+                  ->with($this->equalTo('doctrine.orm.default_entity_manager'))
+                  ->will($this->returnValue($em));
+
+        $registry = new Registry($container, array(), array('default' => 'doctrine.orm.default_entity_manager'), 'default', 'default');
+
+        $this->assertSame($em, $registry->getEntityManager());
+    }
+
+    public function testGetEntityManager()
+    {
+        $em = new \stdClass();
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+        $container->expects($this->once())
+                  ->method('get')
+                  ->with($this->equalTo('doctrine.orm.default_entity_manager'))
+                  ->will($this->returnValue($em));
+
+        $registry = new Registry($container, array(), array('default' => 'doctrine.orm.default_entity_manager'), 'default', 'default');
+
+        $this->assertSame($em, $registry->getEntityManager('default'));
+    }
+
+    public function testGetUnknownEntityManager()
+    {
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+        $registry = new Registry($container, array(), array(), 'default', 'default');
+
+        $this->setExpectedException('InvalidArgumentException', 'Doctrine EntityManager named "default" does not exist.');
+        $registry->getEntityManager('default');
+    }
+
+    public function testResetDefaultEntityManager()
+    {
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+        $container->expects($this->once())
+                  ->method('set')
+                  ->with($this->equalTo('doctrine.orm.default_entity_manager'), $this->equalTo(null));
+
+        $registry = new Registry($container, array(), array('default' => 'doctrine.orm.default_entity_manager'), 'default', 'default');
+        $registry->resetEntityManager();
+    }
+
+    public function testResetEntityManager()
+    {
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+        $container->expects($this->once())
+                  ->method('set')
+                  ->with($this->equalTo('doctrine.orm.default_entity_manager'), $this->equalTo(null));
+
+        $registry = new Registry($container, array(), array('default' => 'doctrine.orm.default_entity_manager'), 'default', 'default');
+        $registry->resetEntityManager('default');
+    }
+
+    public function testResetUnknownEntityManager()
+    {
+        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+        $registry = new Registry($container, array(), array(), 'default', 'default');
+
+        $this->setExpectedException('InvalidArgumentException', 'Doctrine EntityManager named "default" does not exist.');
+        $registry->resetEntityManager('default');
+    }
+}