Completed
Push — location_references ( 47d67d )
by
unknown
13:55
created

LocationConfigResolverTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 94
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
dl 0
loc 94
rs 10
c 0
b 0
f 0
wmc 5
lcom 1
cbo 2

5 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 10 1
A testGetLocation() 0 18 1
A testGetLocationAcceptLocationId() 0 18 1
A testGetLocationReference() 0 14 1
A testGetLocationReferenceAcceptLocationId() 0 14 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace eZ\Publish\Core\LocationReference\Tests\ConfigResolver;
6
7
use eZ\Publish\Core\LocationReference\ConfigResolver\LocationConfigResolver;
8
use eZ\Publish\Core\LocationReference\LocationReference;
9
use eZ\Publish\Core\LocationReference\LocationReferenceResolverInterface;
10
use eZ\Publish\API\Repository\Values\Content\Location;
11
use eZ\Publish\Core\MVC\ConfigResolverInterface;
12
use PHPUnit\Framework\TestCase;
13
14
final class LocationConfigResolverTest extends TestCase
15
{
16
    private const EXAMPLE_REFERENCE = 'remote_id("babe4a915b1dd5d369e79adb9d6c0c6a")';
17
    private const EXAMPLE_LOCATION_ID = 2;
18
    private const EXAMPLE_PARAMETER = ['tree_root', 'content', 'default'];
19
20
    /** @var \eZ\Publish\Core\MVC\ConfigResolverInterface|\PHPUnit\Framework\MockObject\MockObject */
21
    private $configResolver;
22
23
    /** @var \eZ\Publish\Core\LocationReference\LocationReferenceResolverInterface|\PHPUnit\Framework\MockObject\MockObject */
24
    private $referenceResolver;
25
26
    /** @var \eZ\Publish\Core\LocationReference\ConfigResolver\LocationConfigResolver */
27
    private $locationConfigResolver;
28
29
    protected function setUp(): void
30
    {
31
        $this->configResolver = $this->createMock(ConfigResolverInterface::class);
32
        $this->referenceResolver = $this->createMock(LocationReferenceResolverInterface::class);
33
34
        $this->locationConfigResolver = new LocationConfigResolver(
35
            $this->configResolver,
36
            $this->referenceResolver
37
        );
38
    }
39
40
    public function testGetLocation(): void
41
    {
42
        $location = $this->createMock(Location::class);
43
44
        $this->configResolver
45
            ->method('getParameter')
46
            ->with(...self::EXAMPLE_PARAMETER)
47
            ->willReturn(self::EXAMPLE_REFERENCE);
48
49
        $this->referenceResolver
50
            ->method('resolve')
51
            ->with(self::EXAMPLE_REFERENCE)
52
            ->willReturn($location);
53
54
        $this->assertEquals($location, $this->locationConfigResolver->getLocation(
55
            ...self::EXAMPLE_PARAMETER
56
        ));
57
    }
58
59
    public function testGetLocationAcceptLocationId(): void
60
    {
61
        $location = $this->createMock(Location::class);
62
63
        $this->configResolver
64
            ->method('getParameter')
65
            ->with(...self::EXAMPLE_PARAMETER)
66
            ->willReturn(self::EXAMPLE_LOCATION_ID);
67
68
        $this->referenceResolver
69
            ->method('resolve')
70
            ->with((string) self::EXAMPLE_LOCATION_ID)
71
            ->willReturn($location);
72
73
        $this->assertEquals($location, $this->locationConfigResolver->getLocation(
74
            ...self::EXAMPLE_PARAMETER
75
        ));
76
    }
77
78
    public function testGetLocationReference(): void
79
    {
80
        $this->configResolver
81
            ->method('getParameter')
82
            ->with(...self::EXAMPLE_PARAMETER)
83
            ->willReturn(self::EXAMPLE_REFERENCE);
84
85
        $reference = $this->locationConfigResolver->getLocationReference(
86
            ...self::EXAMPLE_PARAMETER
87
        );
88
89
        $this->assertInstanceOf(LocationReference::class, $reference);
90
        $this->assertEquals(self::EXAMPLE_REFERENCE, (string)$reference);
91
    }
92
93
    public function testGetLocationReferenceAcceptLocationId(): void
94
    {
95
        $this->configResolver
96
            ->method('getParameter')
97
            ->with(...self::EXAMPLE_PARAMETER)
98
            ->willReturn(self::EXAMPLE_LOCATION_ID);
99
100
        $reference = $this->locationConfigResolver->getLocationReference(
101
            ...self::EXAMPLE_PARAMETER
102
        );
103
104
        $this->assertInstanceOf(LocationReference::class, $reference);
105
        $this->assertEquals((string)self::EXAMPLE_LOCATION_ID, (string)$reference);
106
    }
107
}
108