Completed
Pull Request — 1.1 (#5)
by David
07:48 queued 05:16
created

ClassNameMapperTest::testEmptyDir()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 9.7333
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
namespace Mouf\Composer;
3
4
5
class ClassNameMapperTest extends \PHPUnit_Framework_TestCase
6
{
7
    public function testGetPossibleFiles() {
8
        $mapper = ClassNameMapper::createFromComposerFile(__DIR__.'/Fixtures/test_autoload.json');
9
        $possibleFiles = $mapper->getPossibleFileNames('Foo\\Bar\\Baz');
10
11
        $this->assertEquals([ 'src/Foo/Bar/Baz.php', 'src2/Bar/Baz.php' ], $possibleFiles);
12
13
        $possibleFiles = $mapper->getPossibleFileNames('Foo\\Bar');
14
15
        $this->assertEquals([ 'src/Foo/Bar.php', 'src2/Bar.php' ], $possibleFiles);
16
17
        //From autoloader instead of composer.json
18
        $mapper = ClassNameMapper::createFromComposerAutoload(__DIR__ . '/Fixtures/test_autoload.php');
19
        $possibleFiles = $mapper->getPossibleFileNames('Mouf\\Composer\\ClassNameMapper');
20
21
        $this->assertEquals([
22
                'src/ClassNameMapper.php'
23
            ],
24
            $possibleFiles
25
        );
26
    }
27
28
    public function testUseAutoloadDev() {
29
        $mapper = ClassNameMapper::createFromComposerFile(__DIR__.'/Fixtures/test_autoload.json', null, true);
30
        $possibleFiles = $mapper->getPossibleFileNames('Foo\\Bar\\Baz');
31
32
        $this->assertEquals([ 'src/Foo/Bar/Baz.php', 'tests/Foo/Bar/Baz.php', 'src2/Bar/Baz.php', 'tests2/Bar/Baz.php' ], $possibleFiles);
33
34
    }
35
36
    public function testGetPossibleFilesFromEmptyPsrAutoload() {
37
        $mapper = ClassNameMapper::createFromComposerFile(__DIR__.'/Fixtures/empty_autoload.json');
38
        $possibleFiles = $mapper->getPossibleFileNames('Foo\\Bar');
39
40
        $this->assertEquals([ 'src/Foo/Bar.php', 'src2/Foo/Bar.php' ], $possibleFiles);
41
42
        $possibleFiles = $mapper->getPossibleFileNames('Foo_Zip\\Bar_Baz');
43
44
        $this->assertEquals([ 'src/Foo_Zip/Bar/Baz.php', 'src2/Foo_Zip/Bar_Baz.php' ], $possibleFiles);
45
46
    }
47
48
    public function testGetManagedNamespaces() {
49
        $mapper = ClassNameMapper::createFromComposerFile(__DIR__.'/../composer.json');
50
        $namespaces = $mapper->getManagedNamespaces();
51
52
        $this->assertEquals([ 'Mouf\\Composer\\' ], $namespaces);
53
    }
54
55
    public function testGetManagedNamespacesFromEmptyPsrAutoload() {
56
        $mapper = ClassNameMapper::createFromComposerFile(__DIR__.'/Fixtures/empty_autoload.json');
57
        $namespaces = $mapper->getManagedNamespaces();
58
59
        $this->assertEquals([ '' ], $namespaces);
60
    }
61
62
    public function testEmptyDir() {
63
        $mapper = ClassNameMapper::createFromComposerFile(__DIR__.'/Fixtures/test_autoload_empty_dir.json', null, true);
64
65
        $possibleFiles = $mapper->getPossibleFileNames('Foo\\Bar\\Baz');
66
        $this->assertEquals([ 'Foo/Bar/Baz.php' ], $possibleFiles);
67
68
        $possibleFiles = $mapper->getPossibleFileNames('Bar\\Baz');
69
        $this->assertEquals([ 'Baz.php' ], $possibleFiles);
70
71
        $possibleFiles = $mapper->getPossibleFileNames('Baz\\Bar\\Baz');
72
        $this->assertEquals([ 'Baz/Bar/Baz.php' ], $possibleFiles);
73
74
        $possibleFiles = $mapper->getPossibleFileNames('Wiz\\Bar\\Baz');
75
        $this->assertEquals([ 'Bar/Baz.php' ], $possibleFiles);
76
77
    }
78
79
    public function testAutoloadException() {
80
        $this->expectException(MissingFileException::class);
81
        $this->expectExceptionMessage('Could not load file "notexist.php"');
82
        ClassNameMapper::createFromComposerAutoload('notexist.php');
83
    }
84
}
85