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

LikeTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 36
dl 0
loc 55
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetExprExact() 0 26 1
A testGetExpr() 0 25 1
1
<?php declare(strict_types=1);
2
3
namespace Tests\Unit\Artprima\QueryFilterBundle\Query\Condition;
4
5
use Artprima\QueryFilterBundle\Query\Condition\Like;
6
use Artprima\QueryFilterBundle\Query\Filter;
7
use Doctrine\ORM\Query\Expr;
8
use Doctrine\ORM\QueryBuilder;
9
use PHPUnit\Framework\TestCase;
10
11
/**
12
 * Class EqTest
13
 *
14
 * @author Denis Voytyuk <[email protected]>
15
 */
16
class LikeTest extends TestCase
17
{
18
    public function testGetExpr()
19
    {
20
        $qb = $this->getMockBuilder(QueryBuilder::class)
21
            ->disableOriginalConstructor()
22
            ->getMock();
23
24
        $qb
25
            ->expects(self::once())
26
            ->method('expr')
27
            ->willReturn(new Expr());
28
29
        $qb
30
            ->expects(self::once())
31
            ->method('setParameter')
32
            ->with(0, '%road%to%hell%')
33
            ->willReturn($qb);
34
35
        $condition = new Like();
36
37
        $expr = $condition->getExpr($qb, 0, (new Filter())
38
            ->setField('t.dummy')
39
            ->setX('road to hell')
40
        );
41
42
        self::assertSame('t.dummy LIKE ?0', (string)$expr);
43
    }
44
45
    public function testGetExprExact()
46
    {
47
        $qb = $this->getMockBuilder(QueryBuilder::class)
48
            ->disableOriginalConstructor()
49
            ->getMock();
50
51
        $qb
52
            ->expects(self::once())
53
            ->method('expr')
54
            ->willReturn(new Expr());
55
56
        $qb
57
            ->expects(self::once())
58
            ->method('setParameter')
59
            ->with(0, '%road to hell%')
60
            ->willReturn($qb);
61
62
        $condition = new Like();
63
64
        $expr = $condition->getExpr($qb, 0, (new Filter())
65
            ->setField('t.dummy')
66
            ->setX('road to hell')
67
            ->setExtra('exact')
68
        );
69
70
        self::assertSame('t.dummy LIKE ?0', (string)$expr);
71
    }
72
}