GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Test Failed
Push — master ( a9f992...d925ed )
by Alessandro
06:33
created

QueryBuilderFactoryTest::testSetSorting()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 4
nc 1
nop 0
1
<?php
2
3
namespace Mado\QueryBundle\Tests\Objects;
4
5
use Mado\QueryBundle\Queries\QueryBuilderFactory;
6
use PHPUnit\Framework\TestCase;
7
8
class QueryBuilderFactoryTest extends TestCase
9
{
10
    public function setUp()
11
    {
12
        $this->manager = \Doctrine\ORM\EntityManager::create(array(
0 ignored issues
show
Bug Best Practice introduced by
The property manager does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
13
            'driver' => 'pdo_sqlite',
14
            'path' => __DIR__ . '/../../data/db.sqlite',
15
        ),
16
        \Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration(
17
            array(__DIR__."/src"),
18
            true
19
        ));
20
    }
21
22
    public function testProvideOneSingleResult()
23
    {
24
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
25
        $queryBuilderFactory->setFields([ 'id' ]);
26
        $queryBuilderFactory->setAndFilters([ 'id|eq' => 33 ]);
27
        $queryBuilderFactory->createQueryBuilder(MySimpleEntity::class, 'e');
28
        $queryBuilderFactory->filter();
29
30
        $doctrineQueryBuilder = $queryBuilderFactory->getQueryBuilder();
31
        $doctrineQueryBuilder->setMaxResults(1);
32
33
        $this->assertEquals(
34
            "SELECT m0_.id AS id_0 FROM MySimpleEntity m0_ WHERE m0_.id = ? LIMIT 1",
35
            $doctrineQueryBuilder->getQuery()->getSql()
36
        );
37
    }
38
39
    public function testSampleQueryMakedWithQueryBuilderFactory()
40
    {
41
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
42
        $queryBuilderFactory->setFields([ 'id' ]);
43
        $queryBuilderFactory->setAndFilters([ 'id|eq' => 33 ]);
44
        $queryBuilderFactory->createQueryBuilder(MySimpleEntity::class, 'e');
45
        $queryBuilderFactory->filter();
46
47
        $this->assertEquals(
48
            "SELECT m0_.id AS id_0 FROM MySimpleEntity m0_ WHERE m0_.id = ?",
49
            $queryBuilderFactory->getQueryBuilder()->getQuery()->getSql()
50
        );
51
52
        $this->assertContains(
53
            "SELECT e FROM Mado\QueryBundle\Tests\Objects\MySimpleEntity e WHERE e.id = :field_id",
54
            $queryBuilderFactory->getQueryBuilder()->getQuery()->getDql()
55
        );
56
    }
57
58
    public function testOneToManyQueryMakedHandly()
59
    {
60
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
61
        $queryBuilderFactory->setFields([ 'id' ]);
62
        $queryBuilderFactory->setRel([ 'group' ]);
63
        $queryBuilderFactory->setAndFilters([
64
            '_embedded.group.name|contains|1' => 'ad',
65
            '_embedded.group.name|contains|2' => 'ns',
66
            '_embedded.group.name|contains|3' => 'dm',
67
            '_embedded.group.name|contains|4' => 'mi',
68
        ]);
69
        $queryBuilderFactory->createQueryBuilder(User::class, 'e');
70
        $queryBuilderFactory->filter();
71
72
        $this->assertEquals(
73
            "SELECT" .
74
            " u0_.id AS id_0," .
75
            " u0_.username AS username_1," .
76
            " u0_.group_id AS group_id_2 " .
77
            "FROM User u0_ " .
78
            "INNER JOIN Group g1_ ON u0_.group_id = g1_.id " .
79
            "WHERE g1_.name LIKE ? " .
80
            "AND g1_.name LIKE ? " .
81
            "AND g1_.name LIKE ? " .
82
            "AND g1_.name LIKE ?",
83
            $queryBuilderFactory->getQueryBuilder()->getQuery()->getSql()
84
        );
85
    }
86
87
    public function testFiltersMustContainsAlsoFieldEquality()
88
    {
89
        $factory = new QueryBuilderFactory($this->manager);
90
91
        $validFilters = [
92
            'eq',
93
            'neq',
94
            'gt',
95
            'gte',
96
            'lt',
97
            'lte',
98
            'startswith',
99
            'contains',
100
            'notcontains',
101
            'endswith',
102
            'list',
103
            'nlist',
104
            'field_eq',
105
        ];
106
107
        $this->assertEquals(
108
            $validFilters,
109
            $factory->getAvailableFilters()
110
        );
111
    }
112
113
    public function testGetFields()
114
    {
115
        $fields = ['id'];
116
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
117
        $queryBuilderFactory->setFields($fields);
118
        $fieldsReturned = $queryBuilderFactory->getFields();
119
120
        $this->assertEquals($fields, $fieldsReturned);
121
    }
122
123
    /**
124
     * @expectedException \RuntimeException
125
     */
126
    public function testGetFieldsThrowExceptionIfNull()
127
    {
128
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
129
        $queryBuilderFactory->getFields();
130
    }
131
132
    public function testSetOrFilters()
133
    {
134
        $filters = ['id'];
135
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
136
        $queryBuilderFactory->setOrFilters($filters);
137
138
        $this->assertAttributeEquals($filters, 'orFiltering', $queryBuilderFactory);
139
    }
140
141
    public function testGetOrFilters()
142
    {
143
        $filters = ['id'];
144
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
145
        $queryBuilderFactory->setOrFilters($filters);
146
        $fieldsReturned = $queryBuilderFactory->getOrFilters();
147
148
        $this->assertEquals($filters, $fieldsReturned);
149
    }
150
151
    public function testSetSorting()
152
    {
153
        $sorting = ['id'];
154
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
155
        $queryBuilderFactory->setSorting($sorting);
156
157
        $this->assertAttributeEquals($sorting, 'sorting', $queryBuilderFactory);
158
    }
159
160
    public function testGetFilters()
161
    {
162
        $filters = ['id'];
163
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
164
        $queryBuilderFactory->setFilters($filters);
0 ignored issues
show
Deprecated Code introduced by
The function Mado\QueryBundle\Queries...erFactory::setFilters() has been deprecated: since version 2.2.2 will be removed in version 2.3 ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

164
        /** @scrutinizer ignore-deprecated */ $queryBuilderFactory->setFilters($filters);

This function has been deprecated. The supplier of the function has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the function will be removed and what other function to use instead.

Loading history...
165
        $fieldsReturned = $queryBuilderFactory->getFilters();
0 ignored issues
show
Bug introduced by
The method getFilters() does not exist on Mado\QueryBundle\Queries\QueryBuilderFactory. Did you maybe mean getAndFilters()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

165
        /** @scrutinizer ignore-call */ 
166
        $fieldsReturned = $queryBuilderFactory->getFilters();

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
166
167
        $this->assertEquals($filters, $fieldsReturned);
168
    }
169
170
    /**
171
     * @expectedException Mado\QueryBundle\Component\Meta\Exceptions\UnInitializedQueryBuilderException
172
     */
173
    public function testGetQueryBuilderThrowExceptionIfNull()
174
    {
175
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
176
        $queryBuilderFactory->getQueryBuilder();
177
    }
178
179
    public function testGetRel()
180
    {
181
        $rel = 'foo';
182
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
183
        $queryBuilderFactory->setRel($rel);
184
        $relReturned = $queryBuilderFactory->getRel();
185
186
        $this->assertEquals($rel, $relReturned);
187
    }
188
189
    public function testSetPrinting()
190
    {
191
        $print = 'foo';
192
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
193
        $queryBuilderFactory->setPrinting($print);
194
195
        $this->assertAttributeEquals($print, 'printing', $queryBuilderFactory);
196
    }
197
198
    public function testGetPrinting()
199
    {
200
        $print = 'foo';
201
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
202
        $queryBuilderFactory->setPrinting($print);
203
        $printReturned = $queryBuilderFactory->getPrinting();
204
205
        $this->assertEquals($print, $printReturned);
206
    }
207
208
    public function testSetPage()
209
    {
210
        $page = 100;
211
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
212
        $queryBuilderFactory->setPage($page);
213
214
        $this->assertAttributeEquals($page, 'page', $queryBuilderFactory);
215
    }
216
217
    public function testGetPage()
218
    {
219
        $page = 100;
220
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
221
        $queryBuilderFactory->setPage($page);
222
        $pageReturned = $queryBuilderFactory->getPage();
223
224
        $this->assertEquals($page, $pageReturned);
225
    }
226
227
    public function testSetPageLength()
228
    {
229
        $pageLength = 100;
230
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
231
        $queryBuilderFactory->setPageLength($pageLength);
232
233
        $this->assertAttributeEquals($pageLength, 'pageLength', $queryBuilderFactory);
234
    }
235
236
    public function testGetPageLength()
237
    {
238
        $pageLength = 100;
239
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
240
        $queryBuilderFactory->setPageLength($pageLength);
241
        $pageLengthReturned = $queryBuilderFactory->getPageLength();
242
243
        $this->assertEquals($pageLength, $pageLengthReturned);
244
    }
245
246
    public function testSetSelect()
247
    {
248
        $select = 'foo';
249
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
250
        $queryBuilderFactory->setSelect($select);
251
252
        $this->assertAttributeEquals($select, 'select', $queryBuilderFactory);
253
    }
254
255
    public function testGetSelect()
256
    {
257
        $select = 'foo';
258
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
259
        $queryBuilderFactory->setSelect($select);
260
        $selectReturned = $queryBuilderFactory->getSelect();
261
262
        $this->assertEquals($select, $selectReturned);
263
    }
264
265
    public function testCanBuildQueriesUsingOrOperator()
266
    {
267
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
268
        $queryBuilderFactory->setFields([ 'id' ]);
269
        $queryBuilderFactory->setRel([ 'group' ]);
270
        $queryBuilderFactory->setOrFilters([
271
            '_embedded.group.name|contains|1' => 'ad',
272
            '_embedded.group.name|contains|2' => 'ns',
273
            '_embedded.group.name|contains|3' => 'dm',
274
            '_embedded.group.name|contains|4' => 'mi',
275
        ]);
276
        $queryBuilderFactory->createQueryBuilder(User::class, 'e');
277
        $queryBuilderFactory->filter();
278
279
        $this->assertEquals(
280
            "SELECT" .
281
            " u0_.id AS id_0," .
282
            " u0_.username AS username_1," .
283
            " u0_.group_id AS group_id_2 " .
284
            "FROM User u0_ " .
285
            "INNER JOIN Group g1_ ON u0_.group_id = g1_.id " .
286
            "WHERE g1_.name LIKE ? " .
287
            "OR g1_.name LIKE ? " .
288
            "OR g1_.name LIKE ? " .
289
            "OR g1_.name LIKE ?",
290
            $queryBuilderFactory->getQueryBuilder()->getQuery()->getSql()
291
        );
292
    }
293
294
    /** @expectedException \Mado\QueryBundle\Exceptions\MissingFiltersException */
295
    public function testThrowMissingFiltersExceptionsWheneverFiltersAreMissing()
296
    {
297
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
298
        $queryBuilderFactory->filter();
299
    }
300
}
301
302
/** @Entity() */
303
class MySimpleEntity
304
{
305
    /** @Id @Column(type="integer") */
306
    private $id;
0 ignored issues
show
introduced by
The private property $id is not used, and could be removed.
Loading history...
307
}
308
309
/** @Entity() */
310
class User
311
{
312
    /** @Id @Column(type="integer") */
313
    private $id;
314
    /** @Column(type="string") */
315
    private $username;
0 ignored issues
show
introduced by
The private property $username is not used, and could be removed.
Loading history...
316
    /** @ManyToOne(targetEntity="Group", inversedBy="member") */
317
    private $group;
0 ignored issues
show
introduced by
The private property $group is not used, and could be removed.
Loading history...
318
}
319
320
/** @Entity() */
321
class Group
322
{
323
    /** @Id @Column(type="integer") */
324
    private $id;
325
    /** @Column(type="string") */
326
    private $name;
0 ignored issues
show
introduced by
The private property $name is not used, and could be removed.
Loading history...
327
    /** @OneToMany(targetEntity="User", mappedBy="member") */
328
    private $members;
0 ignored issues
show
introduced by
The private property $members is not used, and could be removed.
Loading history...
329
}
330