Passed
Push — master ( e0226b...1d20e4 )
by Marco
47s queued 11s
created

DependencyGuesserTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 15
dl 0
loc 36
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 3 1
A testDoesNotSuggestAnything() 0 4 1
A testCoreExtensionsResolvesToPHP() 0 7 1
A testGuessExtJson() 0 8 2
1
<?php
2
3
namespace ComposerRequireCheckerTest\DependencyGuesser;
4
5
use ComposerRequireChecker\Cli\Options;
6
use ComposerRequireChecker\DependencyGuesser\DependencyGuesser;
7
use PHPUnit\Framework\TestCase;
8
9
class DependencyGuesserTest extends TestCase
10
{
11
12
    /**
13
     * @var DependencyGuesser
14
     */
15
    private $guesser;
16
17
    public function setUp()
18
    {
19
        $this->guesser = new DependencyGuesser();
20
    }
21
22
    public function testGuessExtJson()
23
    {
24
        if (!extension_loaded('json')) {
25
            $this->markTestSkipped('extension json is not available');
26
        }
27
        $result = $this->guesser->__invoke('json_decode');
28
        $this->assertNotEmpty($result);
29
        $this->assertContains('ext-json', $result);
30
    }
31
32
    public function testDoesNotSuggestAnything()
33
    {
34
        $result = $this->guesser->__invoke('an_hopefully_unique_unknown_symbol');
35
        $this->assertFalse($result->valid());
36
    }
37
38
    public function testCoreExtensionsResolvesToPHP()
39
    {
40
        $options = new Options(['php-core-extensions' => ['SPL', 'something-else']]);
41
        $this->guesser = new DependencyGuesser($options);
42
        $result = $this->guesser->__invoke('RecursiveDirectoryIterator');
43
        $this->assertNotEmpty($result);
44
        $this->assertContains('php', $result);
45
    }
46
}
47