75 lines
2.3 KiB
PHP
75 lines
2.3 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace FOQ\ElasticaBundle\Tests;
|
||
|
|
||
|
use FOQ\ElasticaBundle\Manager;
|
||
|
|
||
|
class CustomRepository{}
|
||
|
|
||
|
/**
|
||
|
* @author Richard Miller <info@limethinking.co.uk>
|
||
|
*/
|
||
|
class ManagerTest extends \PHPUnit_Framework_TestCase
|
||
|
{
|
||
|
|
||
|
public function testThatGetRepositoryReturnsDefaultRepository()
|
||
|
{
|
||
|
$finderMock = $this->getMockBuilder('FOQ\ElasticaBundle\Finder\TransformedFinder')
|
||
|
->disableOriginalConstructor()
|
||
|
->getMock();
|
||
|
|
||
|
$entityName = 'Test Entity';
|
||
|
|
||
|
$manager = new Manager($finderMock);
|
||
|
$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();
|
||
|
|
||
|
$entityName = 'Test Entity';
|
||
|
|
||
|
$manager = new Manager($finderMock);
|
||
|
$manager->addEntity($entityName, $finderMock, 'FOQ\ElasticaBundle\Tests\CustomRepository');
|
||
|
$repository = $manager->getRepository($entityName);
|
||
|
$this->assertInstanceOf('FOQ\ElasticaBundle\Tests\CustomRepository', $repository);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @expectedException RuntimeException
|
||
|
*/
|
||
|
public function testThatGetRepositoryThrowsExceptionIfEntityNotConfigured()
|
||
|
{
|
||
|
$finderMock = $this->getMockBuilder('FOQ\ElasticaBundle\Finder\TransformedFinder')
|
||
|
->disableOriginalConstructor()
|
||
|
->getMock();
|
||
|
|
||
|
$entityName = 'Test Entity';
|
||
|
|
||
|
$manager = new Manager($finderMock);
|
||
|
$manager->addEntity($entityName, $finderMock);
|
||
|
$manager->getRepository('Missing Entity');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @expectedException RuntimeException
|
||
|
*/
|
||
|
public function testThatGetRepositoryThrowsExceptionIfCustomRepositoryNotFound()
|
||
|
{
|
||
|
$finderMock = $this->getMockBuilder('FOQ\ElasticaBundle\Finder\TransformedFinder')
|
||
|
->disableOriginalConstructor()
|
||
|
->getMock();
|
||
|
|
||
|
$entityName = 'Test Entity';
|
||
|
|
||
|
$manager = new Manager($finderMock);
|
||
|
$manager->addEntity($entityName, $finderMock, 'FOQ\ElasticaBundle\Tests\MissingRepository');
|
||
|
$manager->getRepository('Missing Entity');
|
||
|
}
|
||
|
}
|