DirectoryFileScannerTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 72
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 2
dl 0
loc 72
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testProducesStringsIterator() 0 8 2
A testDiscoversCorrectAmountOfFiles() 0 4 1
A pathsProvider() 0 40 1
1
<?php
2
3
namespace FinalizerTest\Scanner;
4
5
use Finalizer\Scanner\DirectoryClassScanner;
6
use Finalizer\Scanner\DirectoryFileScanner;
7
use PHPUnit\Framework\TestCase;
8
9
/**
10
 * @covers \Finalizer\Scanner\DirectoryFileScanner
11
 */
12
class DirectoryFileScannerTest extends TestCase
13
{
14
    /**
15
     * @dataProvider pathsProvider
16
     *
17
     * @param string[] $paths
18
     */
19
    public function testProducesStringsIterator(array $paths)
20
    {
21
        $this->assertInstanceOf(\Traversable::class, (new DirectoryFileScanner())->__invoke($paths));
22
23
        foreach ((new DirectoryFileScanner())->__invoke($paths) as $path) {
24
            $this->assertInternalType('string', $path);
25
        }
26
    }
27
28
    /**
29
     * @dataProvider pathsProvider
30
     *
31
     * @param string[] $paths
32
     */
33
    public function testDiscoversCorrectAmountOfFiles(array $paths, $count)
34
    {
35
        $this->assertCount($count, iterator_to_array((new DirectoryFileScanner())->__invoke($paths)));
36
    }
37
38
    /**
39
     * Data provider
40
     *
41
     * @return string[][][]|int[][]
42
     */
43
    public function pathsProvider()
44
    {
45
        return [
46
            [
47
                [__DIR__ . '/../../FinalizerTestAsset/Scanner/DirectoryFileScanner'],
48
                4
49
            ],
50
            [
51
                [__DIR__ . '/../../FinalizerTestAsset/Scanner/DirectoryFileScanner/EmptyDirectory'],
52
                0
53
            ],
54
            [
55
                [__DIR__ . '/../../FinalizerTestAsset/Scanner/DirectoryFileScanner/DirWithOnePhpFile'],
56
                1
57
            ],
58
            [
59
                [__DIR__ . '/../../FinalizerTestAsset/Scanner/DirectoryFileScanner/DirWithTwoPhpFiles'],
60
                2
61
            ],
62
            [
63
                [__DIR__ . '/../../FinalizerTestAsset/Scanner/DirectoryFileScanner/DirWithOneHhFile'],
64
                1
65
            ],
66
            [
67
                [
68
                    __DIR__ . '/../../FinalizerTestAsset/Scanner/DirectoryFileScanner/DirWithOnePhpFile',
69
                    __DIR__ . '/../../FinalizerTestAsset/Scanner/DirectoryFileScanner/DirWithOneHhFile',
70
                ],
71
                2
72
            ],
73
            [
74
                [
75
                    __DIR__ . '/../../FinalizerTestAsset/Scanner/DirectoryFileScanner/DirWithOnePhpFile',
76
                    __DIR__ . '/../../FinalizerTestAsset/Scanner/DirectoryFileScanner/DirWithOneHhFile',
77
                    __DIR__ . '/../../FinalizerTestAsset/Scanner/DirectoryFileScanner/DirWithTwoPhpFiles',
78
                ],
79
                4
80
            ],
81
        ];
82
    }
83
}
84