From d8c6fb4a50831bbe2a27452f2fa4f676f4715307 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 23 Jan 2015 16:09:18 +0100 Subject: [PATCH] #1277 DDC-3346 DDC-3531 - additional tests for LIMIT and OFFSET repository API (must not hydrate collections) --- .../ORM/Functional/Ticket/DDC3346Test.php | 64 ++++++++++++++++--- 1 file changed, 55 insertions(+), 9 deletions(-) diff --git a/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3346Test.php b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3346Test.php index e082c1b56a6..7ae4fa70603 100644 --- a/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3346Test.php +++ b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3346Test.php @@ -22,7 +22,7 @@ public function setUp() ); } - public function testFindOneByWithEagerFetch() + public function testFindOneWithEagerFetchWillNotHydrateLimitedCollection() { $user = new DDC3346Author(); $user->username = "bwoogy"; @@ -37,24 +37,70 @@ public function testFindOneByWithEagerFetch() $this->_em->persist($article1); $this->_em->persist($article2); $this->_em->flush(); - $this->_em->close(); + $this->_em->clear(); + + /** @var DDC3346Author $author */ + $author = $this->_em->getRepository('Doctrine\Tests\Models\DDC3346\DDC3346Author')->findOneBy( + array('username' => "bwoogy") + ); + + $this->assertCount(2, $author->articles); + } + + public function testFindLimitedWithEagerFetchWillNotHydrateLimitedCollection() + { + $user = new DDC3346Author(); + $user->username = "bwoogy"; + + $article1 = new DDC3346Article(); + $article1->setAuthor($user); + + $article2 = new DDC3346Article(); + $article2->setAuthor($user); + + $this->_em->persist($user); + $this->_em->persist($article1); + $this->_em->persist($article2); + $this->_em->flush(); + $this->_em->clear(); /** @var DDC3346Author[] $authors */ $authors = $this->_em->getRepository('Doctrine\Tests\Models\DDC3346\DDC3346Author')->findBy( - array('username' => "bwoogy") + array('username' => "bwoogy"), + null, + 1 ); $this->assertCount(1, $authors); - $this->assertCount(2, $authors[0]->articles); + } - $this->_em->close(); + public function testFindWithEagerFetchAndOffsetWillNotHydrateLimitedCollection() + { + $user = new DDC3346Author(); + $user->username = "bwoogy"; - /** @var DDC3346Author $author */ - $author = $this->_em->getRepository('Doctrine\Tests\Models\DDC3346\DDC3346Author')->findOneBy( - array('username' => "bwoogy") + $article1 = new DDC3346Article(); + $article1->setAuthor($user); + + $article2 = new DDC3346Article(); + $article2->setAuthor($user); + + $this->_em->persist($user); + $this->_em->persist($article1); + $this->_em->persist($article2); + $this->_em->flush(); + $this->_em->clear(); + + /** @var DDC3346Author[] $authors */ + $authors = $this->_em->getRepository('Doctrine\Tests\Models\DDC3346\DDC3346Author')->findBy( + array('username' => "bwoogy"), + null, + null, + 1 ); - $this->assertCount(2, $author->articles); + $this->assertCount(1, $authors); + $this->assertCount(2, $authors[0]->articles); } }