Passed
Push — master ( 6af672...0107a4 )
by Peter
07:37
created

PageLayoutTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 63
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 25
c 0
b 0
f 0
dl 0
loc 63
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A createValidatorProvider() 0 23 1
A setUp() 0 10 1
A testCreateValidator() 0 7 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace AbterPhp\Website\Validation\Factory;
6
7
use AbterPhp\Admin\TestDouble\Validation\StubRulesFactory;
8
use AbterPhp\Framework\Validation\Rules\Forbidden;
9
use Opulence\Validation\Rules\Factories\RulesFactory;
10
use PHPUnit\Framework\MockObject\MockObject;
11
use PHPUnit\Framework\TestCase;
12
13
class PageLayoutTest extends TestCase
14
{
15
    /** @var PageLayout - System Under Test */
16
    protected $sut;
17
18
    /** @var RulesFactory|MockObject */
19
    protected $rulesFactoryMock;
20
21
    public function setUp(): void
22
    {
23
        parent::setUp();
24
25
        $this->rulesFactoryMock = StubRulesFactory::createRulesFactory(
26
            $this,
27
            ['forbidden' => new Forbidden()]
28
        );
29
30
        $this->sut = new PageLayout($this->rulesFactoryMock);
31
    }
32
33
    /**
34
     * @return array
35
     */
36
    public function createValidatorProvider(): array
37
    {
38
        return [
39
            'empty-data'         => [
40
                [],
41
                true,
42
            ],
43
            'valid-data'         => [
44
                [
45
                    'identifier' => 'foo',
46
                    'body'       => 'bar',
47
                    'header'     => 'baz',
48
                    'footer'     => 'quix',
49
                    'css_files'  => 'oof',
50
                    'js_files'   => 'rab',
51
                ],
52
                true,
53
            ],
54
            'invalid-id-present' => [
55
                [
56
                    'id' => 'baf16ace-8fae-48a8-bbad-a610d7960e31',
57
                ],
58
                false,
59
            ],
60
        ];
61
    }
62
63
    /**
64
     * @dataProvider createValidatorProvider
65
     *
66
     * @param array $data
67
     * @param bool  $expectedResult
68
     */
69
    public function testCreateValidator(array $data, bool $expectedResult)
70
    {
71
        $validator = $this->sut->createValidator();
72
73
        $actualResult = $validator->isValid($data);
74
75
        $this->assertSame($expectedResult, $actualResult);
76
    }
77
}
78