ContentListTest::testCreateValidator()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 7
rs 10
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 ContentListTest extends TestCase
14
{
15
    /** @var ContentList - 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 ContentList($this->rulesFactoryMock);
31
    }
32
33
    /**
34
     * @return array
35
     */
36
    public function createValidatorProvider(): array
37
    {
38
        return [
39
            'empty-data'                          => [
40
                [],
41
                false,
42
            ],
43
            'valid-data'                          => [
44
                [
45
                    'identifier'       => 'foo',
46
                    'name'             => 'bar',
47
                    'classes'          => 'baz',
48
                    'protected'        => '1',
49
                    'with_links'       => '1',
50
                    'with_label_links' => '1',
51
                    'with_html'        => '1',
52
                    'with_images'      => '1',
53
                    'with_classes'     => '1',
54
                ],
55
                true,
56
            ],
57
            'valid-data-missing-all-not-required' => [
58
                [
59
                    'name' => 'bar',
60
                ],
61
                true,
62
            ],
63
            'invalid-id-present'                  => [
64
                [
65
                    'id'   => 'baf16ace-8fae-48a8-bbad-a610d7960e31',
66
                    'name' => 'bar',
67
                ],
68
                false,
69
            ],
70
        ];
71
    }
72
73
    /**
74
     * @dataProvider createValidatorProvider
75
     *
76
     * @param array $data
77
     * @param bool  $expectedResult
78
     */
79
    public function testCreateValidator(array $data, bool $expectedResult)
80
    {
81
        $validator = $this->sut->createValidator();
82
83
        $actualResult = $validator->isValid($data);
84
85
        $this->assertSame($expectedResult, $actualResult);
86
    }
87
}
88