Completed
Branch feature/add-scrutinizer (27b569)
by Matthias
02:05
created

LocateDefinedSymbolsFromASTRootsTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 3
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 testNoRoots() 0 6 1
A testBasicLocate() 0 13 1
A locate() 0 4 1
1
<?php
2
3
namespace ComposerRequireCheckerTest\DefinedSymbolsLocator;
4
5
use ArrayObject;
6
use ComposerRequireChecker\DefinedSymbolsLocator\LocateDefinedSymbolsFromASTRoots;
7
use PhpParser\Node\Stmt\Class_;
8
use PHPUnit\Framework\TestCase;
9
10
/**
11
 * @covers \ComposerRequireChecker\DefinedSymbolsLocator\LocateDefinedSymbolsFromASTRoots
12
 */
13
class LocateDefinedSymbolsFromASTRootsTest extends TestCase
14
{
15
    /** @var LocateDefinedSymbolsFromASTRoots */
16
    private $locator;
17
18
    protected function setUp()
19
    {
20
        parent::setUp();
21
22
        $this->locator = new LocateDefinedSymbolsFromASTRoots();
23
    }
24
25
    public function testNoRoots()
26
    {
27
        $symbols = $this->locate([]);
28
29
        $this->assertCount(0, $symbols);
30
    }
31
32
    public function testBasicLocate()
33
    {
34
        $roots = [
35
            [new Class_('MyClassA'), new Class_('MyClassB')],
36
            [new Class_('MyClassC')],
37
        ];
38
39
        $symbols = $this->locate([$roots]);
40
41
        $this->assertContains('MyClassA', $symbols);
42
        $this->assertContains('MyClassB', $symbols);
43
        $this->assertContains('MyClassC', $symbols);
44
    }
45
46
    private function locate(array $roots): array
47
    {
48
        return ($this->locator)(new ArrayObject($roots));
49
    }
50
}
51