Passed
Pull Request — master (#50)
by Marco
02:46
created

testChecksAllGivenCheckers()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 41
Code Lines 27

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 27
nc 1
nop 0
dl 0
loc 41
rs 8.8571
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace RoaveTest\BackwardCompatibility\DetectChanges\BCBreak\ClassConstantBased;
6
7
use PHPUnit\Framework\MockObject\MockObject;
8
use PHPUnit\Framework\TestCase;
9
use Roave\BackwardCompatibility\Change;
10
use Roave\BackwardCompatibility\Changes;
11
use Roave\BackwardCompatibility\DetectChanges\BCBreak\ClassConstantBased\ClassConstantBased;
12
use Roave\BackwardCompatibility\DetectChanges\BCBreak\ClassConstantBased\MultipleChecksOnAClassConstant;
13
use Roave\BetterReflection\Reflection\ReflectionClassConstant;
14
15
/**
16
 * @covers \Roave\BackwardCompatibility\DetectChanges\BCBreak\ClassConstantBased\MultipleChecksOnAClassConstant
17
 */
18
final class MultipleChecksOnAClassConstantTest extends TestCase
19
{
20
    public function testChecksAllGivenCheckers() : void
21
    {
22
        /** @var ConstantBased|MockObject $checker1 */
23
        $checker1 = $this->createMock(ClassConstantBased::class);
24
        /** @var ConstantBased|MockObject $checker2 */
25
        $checker2 = $this->createMock(ClassConstantBased::class);
26
        /** @var ConstantBased|MockObject $checker3 */
27
        $checker3 = $this->createMock(ClassConstantBased::class);
28
29
        $multiCheck = new MultipleChecksOnAClassConstant($checker1, $checker2, $checker3);
30
31
        /** @var ReflectionClassConstant|MockObject $from */
32
        $from = $this->createMock(ReflectionClassConstant::class);
33
        /** @var ReflectionClassConstant|MockObject $to */
34
        $to = $this->createMock(ReflectionClassConstant::class);
35
36
        $checker1
37
            ->expects(self::once())
38
            ->method('__invoke')
39
            ->with($from, $to)
40
            ->willReturn(Changes::fromList(Change::added('1', true)));
41
42
        $checker2
43
            ->expects(self::once())
44
            ->method('__invoke')
45
            ->with($from, $to)
46
            ->willReturn(Changes::fromList(Change::added('2', true)));
47
48
        $checker3
49
            ->expects(self::once())
50
            ->method('__invoke')
51
            ->with($from, $to)
52
            ->willReturn(Changes::fromList(Change::added('3', true)));
53
54
        $this->assertEquals(
55
            Changes::fromList(
56
                Change::added('1', true),
57
                Change::added('2', true),
58
                Change::added('3', true)
59
            ),
60
            $multiCheck->__invoke($from, $to)
61
        );
62
    }
63
}
64