Completed
Push — master ( b60ce0...53cbf4 )
by Matthias
02:13
created

LocateUsedSymbolsFromASTRootsTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 4
dl 0
loc 38
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 6 1
A testNoAsts() 0 7 1
A testLocate() 0 9 1
A locate() 0 4 1
1
<?php
2
3
namespace ComposerRequireCheckerTest\UsedSymbolsLocator;
4
5
use ArrayObject;
6
use ComposerRequireChecker\UsedSymbolsLocator\LocateUsedSymbolsFromASTRoots;
7
use PhpParser\Node\Name;
8
use PhpParser\Node\Stmt\Class_;
9
use PHPUnit\Framework\TestCase;
10
11
/**
12
 * @covers \ComposerRequireChecker\UsedSymbolsLocator\LocateUsedSymbolsFromASTRoots
13
 */
14
class LocateUsedSymbolsFromASTRootsTest extends TestCase
15
{
16
    /** @var LocateUsedSymbolsFromASTRoots */
17
    private $locator;
18
19
    protected function setUp()
20
    {
21
        parent::setUp();
22
23
        $this->locator = new LocateUsedSymbolsFromASTRoots();
24
    }
25
26
    public function testNoAsts()
27
    {
28
        $asts = [];
29
        $symbols = $this->locate($asts);
30
31
        $this->assertCount(0, $symbols);
32
    }
33
34
    public function testLocate()
35
    {
36
        $node = new Class_('Foo');
37
        $node->extends = new Name('Bar');
38
        $symbols = $this->locate([[$node]]);
39
40
        $this->assertCount(1, $symbols);
41
        $this->assertContains('Bar', $symbols);
42
    }
43
44
    /**
45
     * @return string[]
46
     */
47
    private function locate(array $asts): array
48
    {
49
        return ($this->locator)(new ArrayObject($asts));
50
    }
51
}
52