Test Failed
Pull Request — master (#17)
by Denis
10:14
created

ConditionManagerTest::testAdd()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 6
nc 1
nop 0
dl 0
loc 9
rs 10
c 0
b 0
f 0
1
<?php declare(strict_types=1);
2
3
namespace Tests\Unit\Artprima\QueryFilterBundle\Query;
4
5
use Artprima\QueryFilterBundle\Query\Condition\ConditionInterface;
6
use Artprima\QueryFilterBundle\Query\ConditionManager;
7
use Artprima\QueryFilterBundle\Query\ProxyQueryBuilder;
8
use Doctrine\ORM\EntityManager;
9
use Doctrine\ORM\QueryBuilder;
10
use PHPUnit\Framework\TestCase;
11
12
/**
13
 * Class ConditionManagerTest
14
 *
15
 * @author Denis Voytyuk <[email protected]>
16
 */
17
class ConditionManagerTest extends TestCase
18
{
19
    public function testWrapQueryBuilder()
20
    {
21
        $em = $this->getMockBuilder(EntityManager::class)
22
            ->disableOriginalConstructor()
23
            ->getMock();
24
25
        $manager = new ConditionManager();
26
        $pqb = $manager->wrapQueryBuilder(new QueryBuilder($em));
27
        self::assertInstanceOf(ProxyQueryBuilder::class, $pqb);
28
    }
29
30
    public function testAdd()
31
    {
32
        $condition = $this->getMockBuilder(ConditionInterface::class)
33
            ->disableOriginalConstructor()
34
            ->getMock();
35
36
        $manager = new ConditionManager();
37
        $manager->add($condition, 'dummy');
38
        self::assertSame($condition, $manager['dummy']);
39
    }
40
41
    public function testArrayFuncitonality()
42
    {
43
        $conditions = [];
44
        $conditions['dummy1'] = $this->getMockBuilder(ConditionInterface::class)
45
            ->disableOriginalConstructor()
46
            ->getMock();
47
48
        $conditions['dummy2'] = $this->getMockBuilder(ConditionInterface::class)
49
            ->disableOriginalConstructor()
50
            ->getMock();
51
52
        $manager = new ConditionManager();
53
54
        $manager['dummy1'] = $conditions['dummy1'];
55
        $manager['dummy2'] = $conditions['dummy2'];
56
        self::assertTrue(isset($manager['dummy1']));
57
        self::assertEquals($manager['dummy1'], $conditions['dummy1']);
58
        self::assertCount(2, $manager);
59
60
        foreach ($manager as $id => $item)
61
        {
62
            self::assertSame($conditions[$id], $item);
63
        }
64
65
        unset($manager['dummy1']);
66
        self::assertSame($conditions['dummy2'], $item);
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $item seems to be defined by a foreach iteration on line 60. Are you sure the iterator is never empty, otherwise this variable is not defined?
Loading history...
67
        self::assertFalse(isset($manager['dummy1']));
68
        self::assertCount(1, $manager->all());
69
    }
70
}