Completed
Push — master ( fba7cb...afadea )
by Tomáš
02:50
created

FixerResolverTest::testResolveFixerLevels()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 3
1
<?php
2
3
namespace Symplify\MultiCodingStandard\Tests\PhpCsFixer\Factory;
4
5
use PHPUnit\Framework\TestCase;
6
use Symfony\CS\ConfigurationResolver;
7
use Symfony\CS\Fixer;
8
use Symfony\CS\FixerInterface;
9
use Symplify\MultiCodingStandard\PhpCsFixer\Factory\FixerResolver;
10
11
final class FixerResolverTest extends TestCase
12
{
13
    /**
14
     * @var FixerResolver
15
     */
16
    private $fixerResolver;
17
18
    protected function setUp()
19
    {
20
        $this->fixerResolver = new FixerResolver($this->createConfigurationResolver());
21
    }
22
23
    public function testResolveFixers()
24
    {
25
        $fixers = $this->fixerResolver->resolveFixers([]);
26
        $this->assertCount(0, $fixers);
27
28
        $fixers = $this->fixerResolver->resolveFixers(['array_element_no_space_before_comma']);
29
        $this->assertCount(1, $fixers);
30
    }
31
32
    /**
33
     * @dataProvider provideResolveFixersByLevelAndExcludedFixers
34
     */
35
    public function testResolveFixerLevels(array $fixerLevels, array $excludedFixers, int $expectedFixerCount)
36
    {
37
        $fixers = $this->fixerResolver->resolveFixersByLevelAndExcludedFixers($fixerLevels, $excludedFixers);
38
        $this->assertCount($expectedFixerCount, $fixers);
39
    }
40
41
    public function provideResolveFixersByLevelAndExcludedFixers() : array
42
    {
43
        return [
44
            [[], [], 0],
45
            [['psr1'], [], 3],
46
            [['psr2'], [], 24],
47
            [['psr2'], ['visibility'], 23],
48
            [['psr1', 'psr2'], [], 27],
49
            [['psr1', 'psr2'], ['visibility'], 26]
50
        ];
51
    }
52
53
    private function createConfigurationResolver() : ConfigurationResolver
54
    {
55
        $configurationResolver = new ConfigurationResolver();
56
        $configurationResolver->setAllFixers($this->getAllFixers());
57
        return $configurationResolver;
58
    }
59
60
    /**
61
     * @return FixerInterface[]
62
     */
63
    private function getAllFixers() : array
64
    {
65
        $fixer = new Fixer();
66
        $fixer->registerBuiltInFixers();
67
        return $fixer->getFixers();
68
    }
69
}