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

AliasesTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 47
c 3
b 0
f 0
dl 0
loc 75
rs 10
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A testGet() 0 32 1
A testGetRoot() 0 9 1
A testSet() 0 8 1
A testConstructConfig() 0 18 1
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