#1159 - verifying that Doctrine\ORM\Repository\DefaultRepositoryFactory
considers custom repository class from metadata when instantiating repositories
This commit is contained in:
parent
1e467fd23c
commit
9ef3285ebb
@ -37,12 +37,6 @@ class DefaultRepositoryFactoryTest extends PHPUnit_Framework_TestCase
|
||||
$this->configuration = $this->getMock('Doctrine\\ORM\\Configuration');
|
||||
$this->repositoryFactory = new DefaultRepositoryFactory();
|
||||
|
||||
$this
|
||||
->entityManager
|
||||
->expects($this->any())
|
||||
->method('getClassMetadata')
|
||||
->will($this->returnCallback(array($this, 'buildClassMetadata')));
|
||||
|
||||
$this
|
||||
->entityManager
|
||||
->expects($this->any())
|
||||
@ -58,6 +52,12 @@ class DefaultRepositoryFactoryTest extends PHPUnit_Framework_TestCase
|
||||
|
||||
public function testCreatesRepositoryFromDefaultRepositoryClass()
|
||||
{
|
||||
$this
|
||||
->entityManager
|
||||
->expects($this->any())
|
||||
->method('getClassMetadata')
|
||||
->will($this->returnCallback(array($this, 'buildClassMetadata')));
|
||||
|
||||
$this->assertInstanceOf(
|
||||
'Doctrine\\Tests\\Models\\DDC869\\DDC869PaymentRepository',
|
||||
$this->repositoryFactory->getRepository($this->entityManager, __CLASS__)
|
||||
@ -66,21 +66,46 @@ class DefaultRepositoryFactoryTest extends PHPUnit_Framework_TestCase
|
||||
|
||||
public function testCreatedRepositoriesAreCached()
|
||||
{
|
||||
$this
|
||||
->entityManager
|
||||
->expects($this->any())
|
||||
->method('getClassMetadata')
|
||||
->will($this->returnCallback(array($this, 'buildClassMetadata')));
|
||||
|
||||
$this->assertSame(
|
||||
$this->repositoryFactory->getRepository($this->entityManager, __CLASS__),
|
||||
$this->repositoryFactory->getRepository($this->entityManager, __CLASS__)
|
||||
);
|
||||
}
|
||||
|
||||
public function testCreatesRepositoryFromCustomClassMetadata()
|
||||
{
|
||||
$customMetadata = $this->buildClassMetadata(__DIR__);
|
||||
|
||||
$customMetadata->customRepositoryClassName = 'Doctrine\\Tests\\Models\\DDC753\\DDC753DefaultRepository';
|
||||
|
||||
$this
|
||||
->entityManager
|
||||
->expects($this->any())
|
||||
->method('getClassMetadata')
|
||||
->will($this->returnValue($customMetadata));
|
||||
|
||||
$this->assertInstanceOf(
|
||||
'Doctrine\\Tests\\Models\\DDC753\\DDC753DefaultRepository',
|
||||
$this->repositoryFactory->getRepository($this->entityManager, __CLASS__)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
*
|
||||
* @param string $className
|
||||
*
|
||||
* @return \PHPUnit_Framework_MockObject_MockObject|\Doctrine\Common\Persistence\Mapping\ClassMetadata
|
||||
* @return \PHPUnit_Framework_MockObject_MockObject|\Doctrine\ORM\Mapping\ClassMetadata
|
||||
*/
|
||||
public function buildClassMetadata($className)
|
||||
{
|
||||
/* @var $metadata \Doctrine\ORM\Mapping\ClassMetadata|\PHPUnit_Framework_MockObject_MockObject */
|
||||
$metadata = $this
|
||||
->getMockBuilder('Doctrine\ORM\Mapping\ClassMetadata')
|
||||
->disableOriginalConstructor()
|
||||
|
Loading…
x
Reference in New Issue
Block a user