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.
Passed
Pull Request — master (#84)
by Alessandro
02:40
created

QueryBuilderFactoryTest::testSetPrinting()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 4
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 7
rs 9.4285
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->setFilters([ '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->setFilters([ '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->assertEquals(
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->setFilters([
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
        $fields = ['id'];
135
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
136
        $queryBuilderFactory->setOrFilters($fields);
137
138
        $this->assertAttributeEquals($fields, 'orFiltering', $queryBuilderFactory);
139
    }
140
141
    public function testGetOrFilters()
142
    {
143
        $fields = ['id'];
144
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
145
        $queryBuilderFactory->setOrFilters($fields);
146
147
        $fieldsReturned = $queryBuilderFactory->getOrFilters();
148
149
        $this->assertEquals($fields, $fieldsReturned);
150
    }
151
152
    public function testSetSorting()
153
    {
154
        $fields = ['id'];
155
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
156
        $queryBuilderFactory->setSorting($fields);
157
158
        $this->assertAttributeEquals($fields, 'sorting', $queryBuilderFactory);
159
    }
160
161
    public function testGetFilters()
162
    {
163
        $fields = ['id'];
164
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
165
        $queryBuilderFactory->setFilters($fields);
166
        $fieldsReturned = $queryBuilderFactory->getFilters();
167
168
        $this->assertEquals($fields, $fieldsReturned);
169
    }
170
171
    /**
172
     * @expectedException \RuntimeException
173
     */
174
    public function testGetQueryBuilderThrowExceptionIfNull()
175
    {
176
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
177
        $queryBuilderFactory->getQueryBuilder();
178
    }
179
180
    public function testGetQueryBuilder()
181
    {
182
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
183
        $queryBuilderFactory->createQueryBuilder('foo', 'bar');
184
        $qb = $queryBuilderFactory->getQueryBuilder();
185
186
        $this->assertInstanceOf('Doctrine\ORM\QueryBuilder', $qb);
187
    }
188
189
    public function testGetRel()
190
    {
191
        $rel = 'foo';
192
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
193
        $queryBuilderFactory->setRel($rel);
194
        $relReturned = $queryBuilderFactory->getRel();
195
196
        $this->assertEquals($rel, $relReturned);
197
    }
198
199
    public function testSetPrinting()
200
    {
201
        $print = 'foo';
202
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
203
        $queryBuilderFactory->setPrinting($print);
204
205
        $this->assertAttributeEquals($print, 'printing', $queryBuilderFactory);
206
    }
207
208
    public function testGetPrinting()
209
    {
210
        $print = 'foo';
211
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
212
        $queryBuilderFactory->setPrinting($print);
213
        $printReturned = $queryBuilderFactory->getPrinting();
214
215
        $this->assertEquals($print, $printReturned);
216
    }
217
218
    public function testSetPage()
219
    {
220
        $page = 'foo';
221
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
222
        $queryBuilderFactory->setPage($page);
223
224
        $this->assertAttributeEquals($page, 'page', $queryBuilderFactory);
225
    }
226
227
    public function testGetPage()
228
    {
229
        $page = 'foo';
230
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
231
        $queryBuilderFactory->setPage($page);
232
        $pageReturned = $queryBuilderFactory->getPage();
233
234
        $this->assertEquals($page, $pageReturned);
235
    }
236
237
    public function testSetPageLength()
238
    {
239
        $pageLength = 100;
240
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
241
        $queryBuilderFactory->setPageLength($pageLength);
242
243
        $this->assertAttributeEquals($pageLength, 'pageLength', $queryBuilderFactory);
244
    }
245
246
    public function testGetPageLength()
247
    {
248
        $pageLength = 100;
249
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
250
        $queryBuilderFactory->setPageLength($pageLength);
251
        $pageLengthReturned = $queryBuilderFactory->getPageLength();
252
253
        $this->assertEquals($pageLength, $pageLengthReturned);
254
    }
255
256
    public function testSetSelect()
257
    {
258
        $select = 'foo';
259
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
260
        $queryBuilderFactory->setSelect($select);
261
262
        $this->assertAttributeEquals($select, 'select', $queryBuilderFactory);
263
    }
264
265
    public function testGetSelect()
266
    {
267
        $select = 'foo';
268
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
269
        $queryBuilderFactory->setSelect($select);
270
        $selectReturned = $queryBuilderFactory->getSelect();
271
272
        $this->assertEquals($select, $selectReturned);
273
    }
274
275
    public function testGetEntityManager()
276
    {
277
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
278
        $emReturned = $queryBuilderFactory->getEntityManager();
279
280
        $this->assertEquals($this->manager, $emReturned);
281
    }
282
283
}
284
285
/** @Entity() */
286
class MySimpleEntity
287
{
288
    /** @Id @Column(type="integer") */
289
    private $id;
0 ignored issues
show
introduced by
The private property $id is not used, and could be removed.
Loading history...
290
}
291
292
/** @Entity() */
293
class User
294
{
295
    /** @Id @Column(type="integer") */
296
    private $id;
297
    /** @Column(type="string") */
298
    private $username;
0 ignored issues
show
introduced by
The private property $username is not used, and could be removed.
Loading history...
299
    /** @ManyToOne(targetEntity="Group", inversedBy="member") */
300
    private $group;
0 ignored issues
show
introduced by
The private property $group is not used, and could be removed.
Loading history...
301
}
302
303
/** @Entity() */
304
class Group
305
{
306
    /** @Id @Column(type="integer") */
307
    private $id;
308
    /** @Column(type="string") */
309
    private $name;
0 ignored issues
show
introduced by
The private property $name is not used, and could be removed.
Loading history...
310
    /** @OneToMany(targetEntity="User", mappedBy="member") */
311
    private $members;
0 ignored issues
show
introduced by
The private property $members is not used, and could be removed.
Loading history...
312
}
313