Skip to content

Commit 4621844

Browse files
Fix tests
1 parent 4abd97e commit 4621844

File tree

3 files changed

+28
-24
lines changed

3 files changed

+28
-24
lines changed

Tests/Filter/Doctrine/DBALQueryBuilderUpdaterTest.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ public function testBuildQuery()
2222
{
2323
parent::createBuildQueryTest('getSQL', [
2424
'SELECT i FROM item i',
25-
'SELECT i FROM item i WHERE i.name LIKE \'blabla\'',
26-
'SELECT i FROM item i WHERE (i.name LIKE \'blabla\') AND (i.position > :p_i_position)',
27-
'SELECT i FROM item i WHERE (i.name LIKE \'blabla\') AND (i.position > :p_i_position) AND (i.enabled = :p_i_enabled)',
28-
'SELECT i FROM item i WHERE (i.name LIKE \'blabla\') AND (i.position > :p_i_position) AND (i.enabled = :p_i_enabled)',
29-
'SELECT i FROM item i WHERE (i.name LIKE \'%blabla\') AND (i.position <= :p_i_position) AND (i.createdAt = :p_i_createdAt)',
30-
'SELECT i FROM item i WHERE (i.name LIKE \'%blabla\') AND (i.position <= :p_i_position) AND (i.createdAt = :p_i_createdAt)',
25+
'SELECT i FROM item i WHERE i.name LIKE :p_i_name ESCAPE 3',
26+
'SELECT i FROM item i WHERE (i.name LIKE :p_i_name ESCAPE 3) AND (i.position > :p_i_position)',
27+
'SELECT i FROM item i WHERE (i.name LIKE :p_i_name ESCAPE 3) AND (i.position > :p_i_position) AND (i.enabled = :p_i_enabled)',
28+
'SELECT i FROM item i WHERE (i.name LIKE :p_i_name ESCAPE 3) AND (i.position > :p_i_position) AND (i.enabled = :p_i_enabled)',
29+
'SELECT i FROM item i WHERE (i.name LIKE :p_i_name ESCAPE 2) AND (i.position <= :p_i_position) AND (i.createdAt = :p_i_createdAt)',
30+
'SELECT i FROM item i WHERE (i.name LIKE :p_i_name ESCAPE 2) AND (i.position <= :p_i_position) AND (i.createdAt = :p_i_createdAt)',
3131
]
3232
);
3333
}
@@ -74,7 +74,7 @@ public function testDateTimeRange()
7474

7575
public function testFilterStandardType()
7676
{
77-
parent::createFilterStandardTypeTest('getSQL', ['SELECT i FROM item i WHERE (i.name LIKE \'%hey dude%\') AND (i.position = 99)']);
77+
parent::createFilterStandardTypeTest('getSQL', ['SELECT i FROM item i WHERE (i.name LIKE :p_i_name) AND (i.position = 99)']);
7878
}
7979

8080
protected function createDoctrineQueryBuilder()

Tests/Filter/Doctrine/DoctrineQueryBuilderUpdater.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,16 @@ protected function createBuildQueryTest($method, array $dqls)
8585

8686
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
8787
$this->assertEquals($dqls[0], $doctrineQueryBuilder->{$method}());
88+
$this->assertEquals([], $this->getQueryBuilderParameters($doctrineQueryBuilder));
8889

8990
// bind a request to the form - 1 params
9091
$doctrineQueryBuilder = $this->createDoctrineQueryBuilder();
9192
$form->submit(['name' => 'blabla', 'position' => '']);
9293

9394
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
9495
$this->assertEquals($dqls[1], $doctrineQueryBuilder->{$method}());
96+
$this->assertEquals(['p_i_name' => 'blabla'], $this->getQueryBuilderParameters($doctrineQueryBuilder));
97+
9598

9699
// bind a request to the form - 2 params
97100
$form = $this->formFactory->create(ItemFilterType::class);
@@ -101,7 +104,7 @@ protected function createBuildQueryTest($method, array $dqls)
101104

102105
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
103106
$this->assertEquals($dqls[2], $doctrineQueryBuilder->{$method}());
104-
$this->assertEquals(['p_i_position' => 2], $this->getQueryBuilderParameters($doctrineQueryBuilder));
107+
$this->assertEquals(['p_i_name' => 'blabla', 'p_i_position' => 2.0], $this->getQueryBuilderParameters($doctrineQueryBuilder));
105108

106109
// bind a request to the form - 3 params
107110
$form = $this->formFactory->create(ItemFilterType::class);
@@ -111,7 +114,7 @@ protected function createBuildQueryTest($method, array $dqls)
111114

112115
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
113116
$this->assertEquals($dqls[3], $doctrineQueryBuilder->{$method}());
114-
$this->assertEquals(['p_i_position' => 2, 'p_i_enabled' => true], $this->getQueryBuilderParameters($doctrineQueryBuilder));
117+
$this->assertEquals(['p_i_name' => 'blabla', 'p_i_position' => 2.0, 'p_i_enabled' => 1], $this->getQueryBuilderParameters($doctrineQueryBuilder));
115118

116119
// bind a request to the form - 3 params (use checkbox for enabled field)
117120
$form = $this->formFactory->create(ItemFilterType::class, null, ['checkbox' => true]);
@@ -121,7 +124,7 @@ protected function createBuildQueryTest($method, array $dqls)
121124

122125
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
123126
$this->assertEquals($dqls[4], $doctrineQueryBuilder->{$method}());
124-
$this->assertEquals(['p_i_position' => 2, 'p_i_enabled' => 1], $this->getQueryBuilderParameters($doctrineQueryBuilder));
127+
$this->assertEquals(['p_i_name' => 'blabla', 'p_i_position' => 2, 'p_i_enabled' => 1], $this->getQueryBuilderParameters($doctrineQueryBuilder));
125128

126129
// bind a request to the form - date + pattern selector
127130
$year = \date('Y');
@@ -148,7 +151,7 @@ protected function createBuildQueryTest($method, array $dqls)
148151

149152
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
150153
$this->assertEquals($dqls[5], $doctrineQueryBuilder->{$method}());
151-
$this->assertEquals(['p_i_position' => 2, 'p_i_createdAt' => new \DateTime("{$year}-09-27")], $this->getQueryBuilderParameters($doctrineQueryBuilder));
154+
$this->assertEquals(['p_i_name' => '%blabla', 'p_i_position' => 2.0, 'p_i_createdAt' => new \DateTime("{$year}-09-27")], $this->getQueryBuilderParameters($doctrineQueryBuilder));
152155

153156
// bind a request to the form - datetime + pattern selector
154157
$form = $this->formFactory->create(ItemFilterType::class, null, ['with_selector' => true, 'datetime' => true]);
@@ -158,7 +161,7 @@ protected function createBuildQueryTest($method, array $dqls)
158161

159162
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
160163
$this->assertEquals($dqls[6], $doctrineQueryBuilder->{$method}());
161-
$this->assertEquals(['p_i_position' => 2, 'p_i_createdAt' => new \DateTime("{$year}-09-27 13:21:00")], $this->getQueryBuilderParameters($doctrineQueryBuilder));
164+
$this->assertEquals(['p_i_name' => '%blabla', 'p_i_position' => 2.0, 'p_i_createdAt' => new \DateTime("{$year}-09-27 13:21:00")], $this->getQueryBuilderParameters($doctrineQueryBuilder));
162165
}
163166

164167
protected function createDisabledFieldTest($method, array $dqls)
@@ -304,5 +307,6 @@ public function createFilterStandardTypeTest($method, array $dqls)
304307

305308
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
306309
$this->assertEquals($dqls[0], $doctrineQueryBuilder->{$method}());
310+
$this->assertEquals(['p_i_name' => 'hey dude'], $this->getQueryBuilderParameters($doctrineQueryBuilder));
307311
}
308312
}

Tests/Filter/Doctrine/ORMQueryBuilderUpdaterTest.php

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class ORMQueryBuilderUpdaterTest extends DoctrineQueryBuilderUpdater
2424
{
2525
public function testBuildQuery()
2626
{
27-
parent::createBuildQueryTest('getDQL', ['SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i', 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE \'blabla\'', 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE \'blabla\' AND i.position > :p_i_position', 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE \'blabla\' AND i.position > :p_i_position AND i.enabled = :p_i_enabled', 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE \'blabla\' AND i.position > :p_i_position AND i.enabled = :p_i_enabled', 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE \'%blabla\' AND i.position <= :p_i_position AND i.createdAt = :p_i_createdAt', 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE \'%blabla\' AND i.position <= :p_i_position AND i.createdAt = :p_i_createdAt']);
27+
parent::createBuildQueryTest('getDQL', ['SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i', 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE :p_i_name', 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE :p_i_name AND i.position > :p_i_position', 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE :p_i_name AND i.position > :p_i_position AND i.enabled = :p_i_enabled', 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE :p_i_name AND i.position > :p_i_position AND i.enabled = :p_i_enabled', 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE :p_i_name AND i.position <= :p_i_position AND i.createdAt = :p_i_createdAt', 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE :p_i_name AND i.position <= :p_i_position AND i.createdAt = :p_i_createdAt']);
2828
}
2929

3030
public function testDisabledFieldQuery()
@@ -69,7 +69,7 @@ public function testDateTimeRange()
6969

7070
public function testFilterStandardType()
7171
{
72-
parent::createFilterStandardTypeTest('getDQL', ['SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE \'%hey dude%\' AND i.position = 99']);
72+
parent::createFilterStandardTypeTest('getDQL', ['SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i WHERE i.name LIKE :p_i_name AND i.position = 99']);
7373
}
7474

7575
public function testEmbedFormFilter()
@@ -82,11 +82,11 @@ public function testEmbedFormFilter()
8282
$form->submit(['name' => 'dude', 'options' => [['label' => 'color', 'rank' => 3]]]);
8383

8484
$expectedDql = 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i';
85-
$expectedDql .= ' LEFT JOIN i.options opt WHERE i.name LIKE \'dude\' AND (opt.label LIKE \'color\' AND opt.rank = :p_opt_rank)';
85+
$expectedDql .= ' LEFT JOIN i.options opt WHERE i.name LIKE :p_i_name AND (opt.label LIKE :p_opt_label AND opt.rank = :p_opt_rank)';
8686
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
8787

8888
$this->assertEquals($expectedDql, $doctrineQueryBuilder->getDql());
89-
$this->assertEquals(['p_opt_rank' => 3], $this->getQueryBuilderParameters($doctrineQueryBuilder));
89+
$this->assertEquals(['p_i_name' => 'dude', 'p_opt_label' => 'color', 'p_opt_rank' => 3], $this->getQueryBuilderParameters($doctrineQueryBuilder));
9090

9191
// doctrine query builder with joins
9292
$form = $this->formFactory->create(ItemEmbeddedOptionsFilterType::class);
@@ -97,13 +97,13 @@ public function testEmbedFormFilter()
9797
$form->submit(['name' => 'dude', 'options' => [['label' => 'size', 'rank' => 5]]]);
9898

9999
$expectedDql = 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i';
100-
$expectedDql .= ' LEFT JOIN i.options o WHERE i.name LIKE \'dude\' AND (o.label LIKE \'size\' AND o.rank = :p_o_rank)';
100+
$expectedDql .= ' LEFT JOIN i.options o WHERE i.name LIKE :p_i_name AND (o.label LIKE :p_o_label AND o.rank = :p_o_rank)';
101101

102102
$filterQueryBuilder->setParts(['i.options' => 'o']);
103103
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
104104

105105
$this->assertEquals($expectedDql, $doctrineQueryBuilder->getDql());
106-
$this->assertEquals(['p_o_rank' => 5], $this->getQueryBuilderParameters($doctrineQueryBuilder));
106+
$this->assertEquals(['p_i_name' => 'dude', 'p_o_label' => 'size', 'p_o_rank' => 5], $this->getQueryBuilderParameters($doctrineQueryBuilder));
107107
}
108108

109109
public function testCustomConditionBuilder()
@@ -126,11 +126,11 @@ public function testCustomConditionBuilder()
126126
$form->submit(['name' => 'dude', 'options' => [['label' => 'color', 'rank' => 6]]]);
127127

128128
$expectedDql = 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i';
129-
$expectedDql .= ' LEFT JOIN i.options opt WHERE opt.label LIKE \'color\' OR (opt.rank = :p_opt_rank AND i.name LIKE \'dude\')';
129+
$expectedDql .= ' LEFT JOIN i.options opt WHERE opt.label LIKE :p_opt_label OR (opt.rank = :p_opt_rank AND i.name LIKE :p_i_name)';
130130
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
131131

132132
$this->assertEquals($expectedDql, $doctrineQueryBuilder->getDql());
133-
$this->assertEquals(['p_opt_rank' => 6], $this->getQueryBuilderParameters($doctrineQueryBuilder));
133+
$this->assertEquals(['p_i_name' => 'dude', 'p_opt_label' => 'color', 'p_opt_rank' => 6], $this->getQueryBuilderParameters($doctrineQueryBuilder));
134134

135135
// doctrine query builder without any joins + custom condition builder
136136
$form = $this->formFactory->create(ItemEmbeddedOptionsFilterType::class, null, ['filter_condition_builder' => function (ConditionBuilderInterface $builder) {
@@ -153,11 +153,11 @@ public function testCustomConditionBuilder()
153153
$form->submit(['name' => 'dude', 'position' => 1, 'options' => [['label' => 'color', 'rank' => 6]]]);
154154

155155
$expectedDql = 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i';
156-
$expectedDql .= ' LEFT JOIN i.options opt WHERE (i.name LIKE \'dude\' OR opt.label LIKE \'color\') AND (opt.rank = :p_opt_rank OR i.position = :p_i_position)';
156+
$expectedDql .= ' LEFT JOIN i.options opt WHERE (i.name LIKE :p_i_name OR opt.label LIKE :p_opt_label) AND (opt.rank = :p_opt_rank OR i.position = :p_i_position)';
157157
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
158158

159159
$this->assertEquals($expectedDql, $doctrineQueryBuilder->getDql());
160-
$this->assertEquals(['p_opt_rank' => 6, 'p_i_position' => 1], $this->getQueryBuilderParameters($doctrineQueryBuilder));
160+
$this->assertEquals(['p_i_name' => 'dude', 'p_opt_label' => 'color', 'p_opt_rank' => 6, 'p_i_position' => 1], $this->getQueryBuilderParameters($doctrineQueryBuilder));
161161
}
162162

163163
public function testWithDataClass()
@@ -170,11 +170,11 @@ public function testWithDataClass()
170170
$form->submit(['name' => 'dude', 'options' => [['label' => 'color', 'rank' => 6]]]);
171171

172172
$expectedDql = 'SELECT i FROM Spiriit\Bundle\FormFilterBundle\Tests\Fixtures\Entity\Item i';
173-
$expectedDql .= ' LEFT JOIN i.options opt WHERE i.name LIKE \'dude\' AND (opt.label LIKE \'color\' AND opt.rank = :p_opt_rank)';
173+
$expectedDql .= ' LEFT JOIN i.options opt WHERE i.name LIKE :p_i_name AND (opt.label LIKE :p_opt_label AND opt.rank = :p_opt_rank)';
174174
$filterQueryBuilder->addFilterConditions($form, $doctrineQueryBuilder);
175175

176176
$this->assertEquals($expectedDql, $doctrineQueryBuilder->getDql());
177-
$this->assertEquals(['p_opt_rank' => 6], $this->getQueryBuilderParameters($doctrineQueryBuilder));
177+
$this->assertEquals(['p_i_name' => 'dude', 'p_opt_label' => 'color', 'p_opt_rank' => 6], $this->getQueryBuilderParameters($doctrineQueryBuilder));
178178
}
179179

180180
protected function createDoctrineQueryBuilder()

0 commit comments

Comments
 (0)