Completed
Pull Request — master (#10)
by Tomáš
07:32
created

FixerResolverTest   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 4
dl 0
loc 59
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 4 1
A testResolveFixers() 0 8 1
A testResolveFixerLevels() 0 5 1
A provideResolveFixersByLevelAndExcludedFixers() 0 11 1
A createConfigurationResolver() 0 6 1
A getAllFixers() 0 6 1
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
}