Passed
Push — master ( cf78d0...1e85bd )
by Alexander
28:53 queued 27:47
created

AliasesTest::testConstructConfig()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

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