2011-11-12 22:10:00 +01:00
|
|
|
<?php
|
|
|
|
|
2011-12-11 21:14:00 +01:00
|
|
|
namespace FOQ\ElasticaBundle\Tests\Manager;
|
2011-11-12 22:10:00 +01:00
|
|
|
|
2011-12-11 21:14:00 +01:00
|
|
|
use FOQ\ElasticaBundle\Manager\RepositoryManager;
|
2011-11-12 22:10:00 +01:00
|
|
|
|
|
|
|
class CustomRepository{}
|
|
|
|
|
2011-12-13 20:26:03 +01:00
|
|
|
class Entity{}
|
|
|
|
|
2011-11-12 22:10:00 +01:00
|
|
|
/**
|
|
|
|
* @author Richard Miller <info@limethinking.co.uk>
|
|
|
|
*/
|
2011-12-11 21:14:00 +01:00
|
|
|
class RepositoryManagerTest extends \PHPUnit_Framework_TestCase
|
2011-11-12 22:10:00 +01:00
|
|
|
{
|
|
|
|
|
|
|
|
public function testThatGetRepositoryReturnsDefaultRepository()
|
|
|
|
{
|
|
|
|
$finderMock = $this->getMockBuilder('FOQ\ElasticaBundle\Finder\TransformedFinder')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
2011-12-13 20:26:03 +01:00
|
|
|
$entityName = 'FOQ\ElasticaBundle\Tests\Manager\Entity';
|
2011-11-12 22:10:00 +01:00
|
|
|
|
2011-12-23 16:29:01 +01:00
|
|
|
$manager = new RepositoryManager();
|
2011-11-12 22:10:00 +01:00
|
|
|
$manager->addEntity($entityName, $finderMock);
|
|
|
|
$repository = $manager->getRepository($entityName);
|
|
|
|
$this->assertInstanceOf('FOQ\ElasticaBundle\Repository', $repository);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testThatGetRepositoryReturnsCustomRepository()
|
|
|
|
{
|
|
|
|
$finderMock = $this->getMockBuilder('FOQ\ElasticaBundle\Finder\TransformedFinder')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
2011-12-13 20:26:03 +01:00
|
|
|
$entityName = 'FOQ\ElasticaBundle\Tests\Manager\Entity';
|
|
|
|
|
2011-12-23 16:29:01 +01:00
|
|
|
$manager = new RepositoryManager();
|
2011-12-11 21:14:00 +01:00
|
|
|
$manager->addEntity($entityName, $finderMock, 'FOQ\ElasticaBundle\Tests\Manager\CustomRepository');
|
2011-11-12 22:10:00 +01:00
|
|
|
$repository = $manager->getRepository($entityName);
|
2011-12-11 21:14:00 +01:00
|
|
|
$this->assertInstanceOf('FOQ\ElasticaBundle\Tests\Manager\CustomRepository', $repository);
|
2011-11-12 22:10:00 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @expectedException RuntimeException
|
|
|
|
*/
|
|
|
|
public function testThatGetRepositoryThrowsExceptionIfEntityNotConfigured()
|
|
|
|
{
|
|
|
|
$finderMock = $this->getMockBuilder('FOQ\ElasticaBundle\Finder\TransformedFinder')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
2011-12-13 20:26:03 +01:00
|
|
|
$entityName = 'FOQ\ElasticaBundle\Tests\Manager\Entity';
|
2011-11-12 22:10:00 +01:00
|
|
|
|
2011-12-23 16:29:01 +01:00
|
|
|
$manager = new RepositoryManager();
|
2011-11-12 22:10:00 +01:00
|
|
|
$manager->addEntity($entityName, $finderMock);
|
|
|
|
$manager->getRepository('Missing Entity');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @expectedException RuntimeException
|
|
|
|
*/
|
|
|
|
public function testThatGetRepositoryThrowsExceptionIfCustomRepositoryNotFound()
|
|
|
|
{
|
|
|
|
$finderMock = $this->getMockBuilder('FOQ\ElasticaBundle\Finder\TransformedFinder')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
2011-12-13 20:26:03 +01:00
|
|
|
$entityName = 'FOQ\ElasticaBundle\Tests\Manager\Entity';
|
2011-11-12 22:10:00 +01:00
|
|
|
|
2011-12-23 16:29:01 +01:00
|
|
|
$manager = new RepositoryManager();
|
2011-11-12 22:10:00 +01:00
|
|
|
$manager->addEntity($entityName, $finderMock, 'FOQ\ElasticaBundle\Tests\MissingRepository');
|
|
|
|
$manager->getRepository('Missing Entity');
|
|
|
|
}
|
2011-12-12 00:09:13 +01:00
|
|
|
|
2011-11-12 22:10:00 +01:00
|
|
|
}
|