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 (#58)
by Simone
03:18
created

testSampleQueryMakedWithWueryBuilderFacgory()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 1
eloc 11
c 1
b 1
f 0
nc 1
nop 0
dl 0
loc 16
rs 9.4285
1
<?php
2
3
namespace Mado\QueryBundle\Tests\Objects;
4
5
use Mado\QueryBundle\Queries\QueryBuilderFactory;
6
use Mado\QueryBundle\Vocabulary\Operators;
0 ignored issues
show
Bug introduced by
The type Mado\QueryBundle\Vocabulary\Operators was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
7
use PHPUnit\Framework\TestCase;
8
9
class QueryBuilderFactoryTest extends TestCase
10
{
11
    public function setUp()
12
    {
13
        $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...
14
            'driver' => 'pdo_sqlite',
15
            'path' => __DIR__ . '/../../data/db.sqlite',
16
        ),
17
        \Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration(
18
            array(__DIR__."/src"),
19
            true
20
        ));
21
    }
22
23
    public function testProvideOneSingleResult()
24
    {
25
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
26
        $queryBuilderFactory->setFields([ 'id' ]);
27
        $queryBuilderFactory->setFilters([ 'id|eq' => 33 ]);
28
        $queryBuilderFactory->createQueryBuilder(MySimpleEntity::class, 'e');
29
        $queryBuilderFactory->filter();
30
31
        $doctrineQueryBuilder = $queryBuilderFactory->getQueryBuilder();
32
        $doctrineQueryBuilder->setMaxResults(1);
33
34
        $this->assertEquals(
35
            "SELECT m0_.id AS id_0 FROM MySimpleEntity m0_ WHERE m0_.id = ? LIMIT 1",
36
            $doctrineQueryBuilder->getQuery()->getSql()
37
        );
38
    }
39
40
    public function testSampleQueryMakedWithWueryBuilderFacgory()
41
    {
42
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
43
        $queryBuilderFactory->setFields([ 'id' ]);
44
        $queryBuilderFactory->setFilters([ 'id|eq' => 33 ]);
45
        $queryBuilderFactory->createQueryBuilder(MySimpleEntity::class, 'e');
46
        $queryBuilderFactory->filter();
47
48
        $this->assertEquals(
49
            "SELECT m0_.id AS id_0 FROM MySimpleEntity m0_ WHERE m0_.id = ?",
50
            $queryBuilderFactory->getQueryBuilder()->getQuery()->getSql()
51
        );
52
53
        $this->assertEquals(
54
            "SELECT e FROM Mado\QueryBundle\Tests\Objects\MySimpleEntity e WHERE e.id = :field_id",
55
            $queryBuilderFactory->getQueryBuilder()->getQuery()->getDql()
56
        );
57
    }
58
59
    public function testOneToManyQueryMakedHandly()
60
    {
61
        $queryBuilderFactory = new QueryBuilderFactory($this->manager);
62
        $queryBuilderFactory->setFields([ 'id' ]);
63
        $queryBuilderFactory->setRel([ 'group' ]);
64
        $queryBuilderFactory->setFilters([
65
            '_embedded.group.name|contains|1' => 'ad',
66
            '_embedded.group.name|contains|2' => 'ns',
67
            '_embedded.group.name|contains|3' => 'dm',
68
            '_embedded.group.name|contains|4' => 'mi',
69
        ]);
70
        $queryBuilderFactory->createQueryBuilder(User::class, 'e');
71
        $queryBuilderFactory->filter();
72
73
        $this->assertEquals(
74
            "SELECT" .
75
            " u0_.id AS id_0," .
76
            " u0_.username AS username_1," .
77
            " u0_.group_id AS group_id_2 " .
78
            "FROM User u0_ " .
79
            "INNER JOIN Group g1_ ON u0_.group_id = g1_.id " .
80
            "WHERE g1_.name LIKE ? " .
81
            "AND g1_.name LIKE ? " .
82
            "AND g1_.name LIKE ? " .
83
            "AND g1_.name LIKE ?",
84
            $queryBuilderFactory->getQueryBuilder()->getQuery()->getSql()
85
        );
86
    }
87
}
88
89
/** @Entity() */
90
class MySimpleEntity
91
{
92
    /** @Id @Column(type="integer") */
93
    private $id;
0 ignored issues
show
Unused Code introduced by
The property $id is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
94
}
95
96
/** @Entity() */
97
class User
98
{
99
    /** @Id @Column(type="integer") */
100
    private $id;
0 ignored issues
show
Unused Code introduced by
The property $id is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
101
    /** @Column(type="string") */
102
    private $username;
0 ignored issues
show
Unused Code introduced by
The property $username is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
103
    /** @ManyToOne(targetEntity="Group", inversedBy="member") */
104
    private $group;
0 ignored issues
show
Unused Code introduced by
The property $group is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
105
}
106
107
/** @Entity() */
108
class Group
109
{
110
    /** @Id @Column(type="integer") */
111
    private $id;
0 ignored issues
show
Unused Code introduced by
The property $id is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
112
    /** @Column(type="string") */
113
    private $name;
0 ignored issues
show
Unused Code introduced by
The property $name is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
114
    /** @OneToMany(targetEntity="User", mappedBy="member") */
115
    private $members;
0 ignored issues
show
Unused Code introduced by
The property $members is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
116
}
117