[DoctrineBundle] added tests for registry

This commit is contained in:
Benjamin Eberlei 2011-05-17 20:31:44 +02:00 committed by Fabien Potencier
parent 879242cdf5
commit 2a5449dcb0

View File

@ -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');
}
}