OptionsTest::testOptionsFileRepresentsDefaults()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 6
c 1
b 0
f 1
dl 0
loc 11
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
namespace ComposerRequireCheckerTest\Cli;
4
5
use ComposerRequireChecker\Cli\Options;
6
use PHPUnit\Framework\TestCase;
7
8
final class OptionsTest extends TestCase
9
{
10
    public function testOptionsAcceptPhpCoreExtensions(): void
11
    {
12
        $options = new Options([
13
            'php-core-extensions' => ['something']
14
        ]);
15
16
        $this->assertSame(['something'], $options->getPhpCoreExtensions());
17
    }
18
19
    public function testOptionsAcceptSymbolWhitelist(): void
20
    {
21
        $options = new Options([
22
            'symbol-whitelist' => ['foo', 'bar']
23
        ]);
24
25
        $this->assertSame(['foo', 'bar'], $options->getSymbolWhitelist());
26
    }
27
28
    public function testOptionsFileRepresentsDefaults(): void
29
    {
30
        $options = new Options();
31
32
        $optionsFromFile = new Options(
33
            json_decode(file_get_contents(
34
                __DIR__ . '/../../../data/config.dist.json'
35
            ), true)
36
        );
37
38
        $this->assertEquals($options, $optionsFromFile);
39
    }
40
41
    public function testThrowsExceptionForUnknownOptions(): void
42
    {
43
        $this->expectException('InvalidArgumentException');
44
        $options = new Options([
0 ignored issues
show
Unused Code introduced by
The assignment to $options is dead and can be removed.
Loading history...
45
            'foo-bar' => ['foo', 'bar']
46
        ]);
47
    }
48
}
49