From d20e0180818e1f6a64a98f8ab1b9b6b310338b1f Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 5 Dec 2014 13:38:45 +0100 Subject: [PATCH 1/2] DDC-3427 - Adding a test to verify that the `ClassMetadataFactory` supports setting an `EntityManagerInterface` instance --- .../ORM/Mapping/ClassMetadataFactoryTest.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/Doctrine/Tests/ORM/Mapping/ClassMetadataFactoryTest.php b/tests/Doctrine/Tests/ORM/Mapping/ClassMetadataFactoryTest.php index 4b9008f1e..e87d4dc51 100644 --- a/tests/Doctrine/Tests/ORM/Mapping/ClassMetadataFactoryTest.php +++ b/tests/Doctrine/Tests/ORM/Mapping/ClassMetadataFactoryTest.php @@ -321,6 +321,22 @@ class ClassMetadataFactoryTest extends \Doctrine\Tests\OrmTestCase $this->assertEquals('group-id', $groups['joinTable']['inverseJoinColumns'][0]['name']); $this->assertEquals('group-id', $groups['joinTable']['inverseJoinColumns'][0]['referencedColumnName']); } + + /** + * @group DDC-3427 + */ + public function testAcceptsEntityManagerInterfaceInstances() + { + $classMetadataFactory = new ClassMetadataFactory(); + + /* @var $entityManager \Doctrine\ORM\EntityManager */ + $entityManager = $this->getMock('Doctrine\\ORM\\EntityManagerInterface'); + + $classMetadataFactory->setEntityManager($entityManager); + + // not really the cleanest way to check it, but we won't add a getter to the CMF just for the sake of testing. + $this->assertAttributeSame($entityManager, 'em', $classMetadataFactory); + } } /* Test subject class with overridden factory method for mocking purposes */ From e65417f1f618c47f8df6abf235ffc5c075d34702 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 5 Dec 2014 13:49:42 +0100 Subject: [PATCH 2/2] DDC-3427 - Adding setting an `EntityManagerInterface` instance in the `ClassMetadataFactory#setEntityManager()` --- .../ORM/Mapping/ClassMetadataFactory.php | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php b/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php index efcf68bab..79e2fc8de 100644 --- a/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php +++ b/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php @@ -19,17 +19,17 @@ namespace Doctrine\ORM\Mapping; -use ReflectionException; -use Doctrine\ORM\ORMException; -use Doctrine\ORM\EntityManager; -use Doctrine\DBAL\Platforms; -use Doctrine\ORM\Events; -use Doctrine\Common\Persistence\Mapping\ReflectionService; -use Doctrine\Common\Persistence\Mapping\ClassMetadata as ClassMetadataInterface; use Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory; -use Doctrine\ORM\Id\IdentityGenerator; -use Doctrine\ORM\Id\BigIntegerIdentityGenerator; +use Doctrine\Common\Persistence\Mapping\ClassMetadata as ClassMetadataInterface; +use Doctrine\Common\Persistence\Mapping\ReflectionService; +use Doctrine\DBAL\Platforms; +use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\Event\LoadClassMetadataEventArgs; +use Doctrine\ORM\Events; +use Doctrine\ORM\Id\BigIntegerIdentityGenerator; +use Doctrine\ORM\Id\IdentityGenerator; +use Doctrine\ORM\ORMException; +use ReflectionException; /** * The ClassMetadataFactory is used to create ClassMetadata objects that contain all the @@ -45,7 +45,7 @@ use Doctrine\ORM\Event\LoadClassMetadataEventArgs; class ClassMetadataFactory extends AbstractClassMetadataFactory { /** - * @var EntityManager + * @var EntityManagerInterface|null */ private $em; @@ -70,9 +70,9 @@ class ClassMetadataFactory extends AbstractClassMetadataFactory private $embeddablesActiveNesting = array(); /** - * @param EntityManager $em + * @param EntityManagerInterface $em */ - public function setEntityManager(EntityManager $em) + public function setEntityManager(EntityManagerInterface $em) { $this->em = $em; }