3 namespace Doctrine\Tests\ORM\Tools\Pagination;
5 use Doctrine\ORM\Query;
6 use Doctrine\ORM\Tools\Pagination\WhereInWalker;
11 class WhereInWalkerTest extends PaginationTestCase
13 public function testWhereInQuery_NoWhere()
15 $query = $this->entityManager->createQuery(
16 'SELECT u, g FROM Doctrine\Tests\ORM\Tools\Pagination\User u JOIN u.groups g'
18 $whereInQuery = clone $query;
19 $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\ORM\Tools\Pagination\WhereInWalker'));
20 $whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_ID_COUNT, 10);
23 "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql()
27 public function testCountQuery_MixedResultsWithName()
29 $query = $this->entityManager->createQuery(
30 'SELECT a, sum(a.name) as foo FROM Doctrine\Tests\ORM\Tools\Pagination\Author a'
32 $whereInQuery = clone $query;
33 $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\ORM\Tools\Pagination\WhereInWalker'));
34 $whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_ID_COUNT, 10);
37 "SELECT a0_.id AS id0, a0_.name AS name1, sum(a0_.name) AS sclr2 FROM Author a0_ WHERE a0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql()
41 public function testWhereInQuery_SingleWhere()
43 $query = $this->entityManager->createQuery(
44 'SELECT u, g FROM Doctrine\Tests\ORM\Tools\Pagination\User u JOIN u.groups g WHERE 1 = 1'
46 $whereInQuery = clone $query;
47 $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\ORM\Tools\Pagination\WhereInWalker'));
48 $whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_ID_COUNT, 10);
51 "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE 1 = 1 AND u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql()
55 public function testWhereInQuery_MultipleWhereWithAnd()
57 $query = $this->entityManager->createQuery(
58 'SELECT u, g FROM Doctrine\Tests\ORM\Tools\Pagination\User u JOIN u.groups g WHERE 1 = 1 AND 2 = 2'
60 $whereInQuery = clone $query;
61 $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\ORM\Tools\Pagination\WhereInWalker'));
62 $whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_ID_COUNT, 10);
65 "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE 1 = 1 AND 2 = 2 AND u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql()
69 public function testWhereInQuery_MultipleWhereWithOr()
71 $query = $this->entityManager->createQuery(
72 'SELECT u, g FROM Doctrine\Tests\ORM\Tools\Pagination\User u JOIN u.groups g WHERE 1 = 1 OR 2 = 2'
74 $whereInQuery = clone $query;
75 $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\ORM\Tools\Pagination\WhereInWalker'));
76 $whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_ID_COUNT, 10);
79 "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE (1 = 1 OR 2 = 2) AND u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql()
83 public function testWhereInQuery_MultipleWhereWithMixed_1()
85 $query = $this->entityManager->createQuery(
86 'SELECT u, g FROM Doctrine\Tests\ORM\Tools\Pagination\User u JOIN u.groups g WHERE (1 = 1 OR 2 = 2) AND 3 = 3'
88 $whereInQuery = clone $query;
89 $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\ORM\Tools\Pagination\WhereInWalker'));
90 $whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_ID_COUNT, 10);
93 "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE (1 = 1 OR 2 = 2) AND 3 = 3 AND u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql()
97 public function testWhereInQuery_MultipleWhereWithMixed_2()
99 $query = $this->entityManager->createQuery(
100 'SELECT u, g FROM Doctrine\Tests\ORM\Tools\Pagination\User u JOIN u.groups g WHERE 1 = 1 AND 2 = 2 OR 3 = 3'
102 $whereInQuery = clone $query;
103 $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\ORM\Tools\Pagination\WhereInWalker'));
104 $whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_ID_COUNT, 10);
107 "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE (1 = 1 AND 2 = 2 OR 3 = 3) AND u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql()
111 public function testWhereInQuery_WhereNot()
113 $query = $this->entityManager->createQuery(
114 'SELECT u, g FROM Doctrine\Tests\ORM\Tools\Pagination\User u JOIN u.groups g WHERE NOT 1 = 2'
116 $whereInQuery = clone $query;
117 $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\ORM\Tools\Pagination\WhereInWalker'));
118 $whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_ID_COUNT, 10);
121 "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE (NOT 1 = 2) AND u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql()