Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Functional / Ticket / DDC1918Test.php
1 <?php
2
3 namespace Doctrine\Tests\ORM\Functional\Ticket;
4
5 use Doctrine\Tests\Models\CMS\CmsUser;
6 use Doctrine\Tests\Models\CMS\CmsGroup;
7 use Doctrine\ORM\Tools\Pagination\Paginator;
8
9 /**
10  * @group DDC-1918
11  */
12 class DDC1918Test extends \Doctrine\Tests\OrmFunctionalTestCase
13 {
14     protected function setUp()
15     {
16         $this->useModelSet('cms');
17         parent::setUp();
18     }
19
20     public function testLastPageCorrect()
21     {
22         $groups = array();
23         for ($i = 0; $i < 3; $i++) {
24             $group = new CmsGroup();
25             $group->name = "test";
26             $this->_em->persist($group);
27
28             $groups[] = $group;
29         }
30
31         for ($i = 0; $i < 10; $i++) {
32             $user = new CmsUser();
33             $user->username = "user$i";
34             $user->name = "user$i";
35             $user->status = "active";
36             $user->groups = $groups;
37
38             $this->_em->persist($user);
39         }
40
41         $this->_em->flush();
42
43         $query = $this->_em->createQuery('SELECT u, g FROM Doctrine\Tests\Models\CMS\CmsUser u JOIN u.groups g');
44         $query->setFirstResult(6);
45         $query->setMaxResults(3);
46
47         $paginator = new Paginator($query, true);
48         $this->assertEquals(3, count(iterator_to_array($paginator)));
49
50         $query->setFirstResult(8);
51         $query->setMaxResults(3);
52
53         $paginator = new Paginator($query, true);
54         $this->assertEquals(2, count(iterator_to_array($paginator)));
55
56         $query->setFirstResult(10);
57         $query->setMaxResults(3);
58
59         $paginator = new Paginator($query, true);
60         $this->assertEquals(0, count(iterator_to_array($paginator)));
61     }
62 }