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

NotSpec   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
c 1
b 0
f 0
lcom 0
cbo 5
dl 0
loc 40
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A let() 0 4 1
A it_calls_parent_match() 0 13 1
A it_modifies_parent_query() 0 7 1
A it_does_not_modify_parent_query() 0 4 1
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