Completed
Push — dependabot/composer/symfony/co... ( a51afd...d77574 )
by
unknown
137:27 queued 127:17
created

VisiblityFilterFuncionalTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

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

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testDefaultVisiblityFilter() 0 12 1
A testVisiblityFilterByCli() 0 12 1
A visibilityProvider() 0 21 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace functional\phpDocumentor\core;
6
7
use phpDocumentor\Descriptor\ClassDescriptor;
8
use phpDocumentor\FunctionalTestCase;
9
10
final class VisiblityFilterFuncionalTest extends FunctionalTestCase
11
{
12
    public function testDefaultVisiblityFilter() : void
13
    {
14
        $this->runPHPDocWithFile(__DIR__ .'/../../assets/core/visibility.php');
15
        $project = $this->loadAst();
16
17
        /** @var ClassDescriptor $classDescriptor */
18
        $classDescriptor = $project->getIndexes()->get('classes')->get('\Visibility');
19
20
        $this->assertCount(3, $classDescriptor->getMethods());
21
        $this->assertCount(3, $classDescriptor->getProperties());
22
        $this->assertCount(3, $classDescriptor->getConstants());
23
    }
24
25
    /**
26
     * @dataProvider visibilityProvider
27
     */
28
    public function testVisiblityFilterByCli(string $visability, int $expectedCount) : void
29
    {
30
        $this->runPHPDocWithFile(__DIR__ .'/../../assets/core/visibility.php', ['--visibility='.$visability]);
31
        $project = $this->loadAst();
32
33
        /** @var ClassDescriptor $classDescriptor */
34
        $classDescriptor = $project->getIndexes()->get('classes')->get('\Visibility');
35
36
        $this->assertCount($expectedCount, $classDescriptor->getMethods());
37
        $this->assertCount($expectedCount, $classDescriptor->getProperties());
38
        $this->assertCount($expectedCount, $classDescriptor->getConstants());
39
    }
40
41
    public function visibilityProvider() : array
42
    {
43
        return [
44
            [
45
                'public',
46
                1
47
            ],
48
            [
49
                'public,protected',
50
                2
51
            ],
52
            [
53
                'protected',
54
                1
55
            ],
56
            [
57
                'private',
58
                1
59
            ]
60
        ];
61
    }
62
}
63