public function testCachesDistinctRepositoriesPerDistinctEntityManager() { $em1 = $this->createEntityManager(); $em2 = $this->createEntityManager(); $em1->expects($this->any())->method('getClassMetadata')->will($this->returnCallback(array($this, 'buildClassMetadata'))); $em2->expects($this->any())->method('getClassMetadata')->will($this->returnCallback(array($this, 'buildClassMetadata'))); $repo1 = $this->repositoryFactory->getRepository($em1, __CLASS__); $repo2 = $this->repositoryFactory->getRepository($em2, __CLASS__); $this->assertSame($repo1, $this->repositoryFactory->getRepository($em1, __CLASS__)); $this->assertSame($repo2, $this->repositoryFactory->getRepository($em2, __CLASS__)); $this->assertNotSame($repo1, $repo2); }
/** * FIXME: Re-creates object for every test. DI container ? * @param string $entityName * @return \Doctrine\Common\Persistence\ObjectRepository */ public function getRepository($entityName) { $em = $this->getEntityManager(); $factory = new DefaultRepositoryFactory($em, $entityName); return $factory->getRepository($em, $entityName); }