Completed
Push — patch-meta ( 5bd3e7 )
by Tobias
08:29
created

NotSpec::it_calls_parent_match()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 13
rs 9.4285
cc 1
eloc 8
nc 1
nop 3
1
<?php
2
3
namespace tests\Happyr\DoctrineSpecification\Logic;
4
5
use Doctrine\ORM\Query\Expr;
6
use Doctrine\ORM\QueryBuilder;
7
use Happyr\DoctrineSpecification\Filter\Filter;
8
use Happyr\DoctrineSpecification\Logic\Not;
9
use Happyr\DoctrineSpecification\Specification\Specification;
10
use PhpSpec\ObjectBehavior;
11
12
/**
13
 * @mixin Not
14
 */
15
class NotSpec extends ObjectBehavior
16
{
17
    public function let(Filter $filterExpr)
18
    {
19
        $this->beConstructedWith($filterExpr, null);
20
    }
21
22
    /**
23
     * calls parent.
24
     */
25
    public function it_calls_parent_match(QueryBuilder $qb, Expr $expr, Filter $filterExpr)
26
    {
27
        $dqlAlias = 'a';
28
        $expression = 'expression';
29
        $parentExpression = 'foobar';
30
31
        $qb->expr()->willReturn($expr);
32
        $filterExpr->getFilter($qb, $dqlAlias)->willReturn($parentExpression);
33
34
        $expr->not($parentExpression)->willReturn($expression);
35
36
        $this->getFilter($qb, $dqlAlias)->shouldReturn($expression);
37
    }
38
39
    /**
40
     * modifies parent query.
41
     */
42
    public function it_modifies_parent_query(QueryBuilder $qb, Specification $spec)
43
    {
44
        $this->beConstructedWith($spec, null);
45
46
        $spec->modify($qb, 'a')->shouldBeCalled();
47
        $this->modify($qb, 'a');
48
    }
49
50
    public function it_does_not_modify_parent_query(QueryBuilder $qb)
51
    {
52
        $this->modify($qb, 'a');
53
    }
54
}
55