DirectoryFileScannerTest::pathsProvider()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 40

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 40
rs 9.28
c 0
b 0
f 0
cc 1
nc 1
nop 0
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