*/ class PersistentCollectionCriteriaTest extends \Doctrine\Tests\OrmFunctionalTestCase { protected function setUp() { $this->useModelSet('tweet'); parent::setUp(); } public function tearDown() { if ($this->_em) { $this->_em->getConfiguration()->setEntityNamespaces(array()); } parent::tearDown(); } public function loadFixture() { $author = new User(); $author->name = 'ngal'; $this->_em->persist($author); $tweet1 = new Tweet(); $tweet1->content = 'Foo'; $author->addTweet($tweet1); $tweet2 = new Tweet(); $tweet2->content = 'Bar'; $author->addTweet($tweet2); $this->_em->flush(); unset($author); unset($tweet1); unset($tweet2); $this->_em->clear(); } public function testCanCountWithoutLoadingPersistentCollection() { $this->loadFixture(); $repository = $this->_em->getRepository('Doctrine\Tests\Models\Tweet\User'); $user = $repository->findOneBy(array('name' => 'ngal')); $tweets = $user->tweets->matching(new Criteria()); $this->assertInstanceOf('Doctrine\ORM\LazyCriteriaCollection', $tweets); $this->assertFalse($tweets->isInitialized()); $this->assertCount(2, $tweets); $this->assertFalse($tweets->isInitialized()); // Make sure it works with constraints $tweets = $user->tweets->matching(new Criteria( Criteria::expr()->eq('content', 'Foo') )); $this->assertInstanceOf('Doctrine\ORM\LazyCriteriaCollection', $tweets); $this->assertFalse($tweets->isInitialized()); $this->assertCount(1, $tweets); $this->assertFalse($tweets->isInitialized()); } }