public function testReferenceEntry() { $em = $this->getMockAnnotationReaderEntityManager(); $role = new TestEntity\Role(); $role->setName('admin'); $meta = $em->getClassMetadata(self::TEST_ENTITY_ROLE); $meta->getReflectionProperty('id')->setValue($role, 1); $referenceRepo = new ProxyReferenceRepository($em); $referenceRepo->addReference('test', $role); $references = $referenceRepo->getReferences(); $this->assertCount(1, $references); $this->assertArrayHasKey('test', $references); $this->assertInstanceOf(self::TEST_ENTITY_ROLE, $references['test']); }
public function testReferenceMultipleEntries() { $em = $this->getMockSqliteEntityManager(); $referenceRepository = new ProxyReferenceRepository($em); $em->getEventManager()->addEventSubscriber(new ORMReferenceListener($referenceRepository)); $schemaTool = new SchemaTool($em); $schemaTool->createSchema(array($em->getClassMetadata(self::TEST_ENTITY_ROLE))); $role = new TestEntity\Role(); $role->setName('admin'); $em->persist($role); $referenceRepository->addReference('admin', $role); $referenceRepository->addReference('duplicate', $role); $em->flush(); $em->clear(); $this->assertInstanceOf('Doctrine\\ORM\\Proxy\\Proxy', $referenceRepository->getReference('admin')); $this->assertInstanceOf('Doctrine\\ORM\\Proxy\\Proxy', $referenceRepository->getReference('duplicate')); }