From 876643e83ecc876061e7d9b66884ad5dc1a79c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Gallego?= Date: Sun, 16 Feb 2014 18:20:06 +0100 Subject: [PATCH] Add test for Entity Repository --- .../EntityRepositoryCriteriaTest.php | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/Doctrine/Tests/ORM/Functional/EntityRepositoryCriteriaTest.php b/tests/Doctrine/Tests/ORM/Functional/EntityRepositoryCriteriaTest.php index 83c26b432..345878849 100644 --- a/tests/Doctrine/Tests/ORM/Functional/EntityRepositoryCriteriaTest.php +++ b/tests/Doctrine/Tests/ORM/Functional/EntityRepositoryCriteriaTest.php @@ -140,4 +140,29 @@ class EntityRepositoryCriteriaTest extends \Doctrine\Tests\OrmFunctionalTestCase $this->assertEquals(1, count($dates)); } + + public function testCanCountWithoutLoadingCollection() + { + $this->loadFixture(); + $repository = $this->_em->getRepository('Doctrine\Tests\Models\Generic\DateTimeModel'); + + $dates = $repository->matching(new Criteria()); + + $this->assertFalse($dates->isInitialized()); + $this->assertCount(3, $dates); + $this->assertFalse($dates->isInitialized()); + + // Test it can work even with a constraint + $dates = $repository->matching(new Criteria( + Criteria::expr()->lte('datetime', new \DateTime('today')) + )); + + $this->assertFalse($dates->isInitialized()); + $this->assertCount(2, $dates); + $this->assertFalse($dates->isInitialized()); + + // Trigger a loading, to make sure collection is initialized + $date = $dates[0]; + $this->assertTrue($dates->isInitialized()); + } }