Passed
Push — master ( 352d3b...bf45a3 )
by Alexander
01:04
created

AliasesTest::testConstructConfig()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
cc 1
eloc 12
c 2
b 0
f 1
nc 1
nop 0
dl 0
loc 18
rs 9.8666
1
<?php
2
3
namespace Yiisoft\Aliases\Tests;
4
5
use PHPUnit\Framework\TestCase;
6
use Yiisoft\Aliases\Aliases;
7
8
final class AliasesTest extends TestCase
9
{
10
    public function testGet(): void
11
    {
12
        $aliases = new Aliases();
13
14
        $aliasNotBeginsWithAt = 'alias not begins with @';
15
        $this->assertEquals($aliasNotBeginsWithAt, $aliases->get($aliasNotBeginsWithAt));
16
17
        $aliases->set('@yii', '/yii/framework');
18
        $this->assertEquals('/yii/framework', $aliases->get('@yii'));
19
        $this->assertEquals('/yii/framework/test/file', $aliases->get('@yii/test/file'));
20
        $aliases->set('yii/gii', '/yii/gii');
21
        $this->assertEquals('/yii/framework', $aliases->get('@yii'));
22
        $this->assertEquals('/yii/framework/test/file', $aliases->get('@yii/test/file'));
23
        $this->assertEquals('/yii/gii', $aliases->get('@yii/gii'));
24
        $this->assertEquals('/yii/gii/file', $aliases->get('@yii/gii/file'));
25
26
        $aliases->set('@tii', '@yii/test');
27
        $this->assertEquals('/yii/framework/test', $aliases->get('@tii'));
28
29
        $aliases->set('@yii', null);
30
        $this->assertEquals('/yii/gii/file', $aliases->get('@yii/gii/file'));
31
32
        $aliases->set('@some/alias', '/www');
33
        $this->assertEquals('/www', $aliases->get('@some/alias'));
34
35
        $erroneousAlias = '@alias_not_exists';
36
        $this->expectException(\InvalidArgumentException::class);
37
        $this->expectExceptionMessage(sprintf('Invalid path alias: %s', $erroneousAlias));
38
        $aliases->get($erroneousAlias);
39
    }
40
41
    public function testGetRoot(): void
42
    {
43
        $aliases = new Aliases();
44
45
        $aliases->set('@yii', '/yii/framework');
46
        $this->assertEquals('@yii', $aliases->getRoot('@yii'));
47
        $this->assertEquals('@yii', $aliases->getRoot('@yii/test/file'));
48
        $aliases->set('@yii/gii', '/yii/gii');
49
        $this->assertEquals('@yii/gii', $aliases->getRoot('@yii/gii'));
50
    }
51
52
    public function testSet(): void
53
    {
54
        $aliases = new Aliases();
55
56
        $aliases->set('@yii/gii', '/yii/gii');
57
        $this->assertEquals('/yii/gii', $aliases->get('@yii/gii'));
58
        $aliases->set('@yii/tii', '/yii/tii');
59
        $this->assertEquals('/yii/tii', $aliases->get('@yii/tii'));
60
    }
61
62
    public function testConstructConfig(): void
63
    {
64
        $aliases = new Aliases([
65
            '@yii' => '/yii',
66
            '@gii' => '@yii/gii',
67
        ]);
68
69
        $this->assertEquals('/yii', $aliases->get('@yii'));
70
        $this->assertEquals('/yii/gii', $aliases->get('@gii'));
71
        $this->assertEquals('@yii', $aliases->getRoot('@yii/tii'));
72
73
        $aliases->set('@tii', '@gii/tii');
74
        $this->assertEquals('/yii/gii/tii', $aliases->get('@tii'));
75
76
        $erroneousAlias = '@alias_not_exists';
77
        $this->expectException(\InvalidArgumentException::class);
78
        $this->expectExceptionMessage(sprintf('Invalid path alias: %s', $erroneousAlias));
79
        $aliases->get($erroneousAlias);
80
    }
81
}
82