Passed
Pull Request — 4.0 (#7892)
by Damian
10:29
created

EnvironmentTest::testGetVariables()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 8
nc 1
nop 0
dl 0
loc 11
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace SilverStripe\Core\Tests;
4
5
use SilverStripe\Core\Environment;
6
use SilverStripe\Dev\SapphireTest;
7
8
class EnvironmentTest extends SapphireTest
9
{
10
    public function providerTestPutEnv()
11
    {
12
        return [
13
            ['_ENVTEST_BOOL=true', '_ENVTEST_BOOL', true],
14
            ['_ENVTEST_BOOL_QUOTED="true"', '_ENVTEST_BOOL_QUOTED', 'true'],
15
            ['_ENVTEST_NUMBER=1', '_ENVTEST_NUMBER', 1],
16
            ['_ENVTEST_NUMBER_QUOTED="1"', '_ENVTEST_NUMBER_QUOTED', '1'],
17
            ['_ENVTEST_NUMBER_SPECIAL="value=4"', '_ENVTEST_NUMBER_SPECIAL', 'value=4'],
18
            ['_ENVTEST_BLANK', '_ENVTEST_BLANK', false],
19
        ];
20
    }
21
22
    /**
23
     * @dataProvider providerTestPutenv
24
     */
25
    public function testPutEnv($put, $var, $value)
26
    {
27
        Environment::putEnv($put);
28
        $this->assertEquals($value, Environment::getEnv($var));
29
    }
30
31
    /**
32
     * @dataProvider providerTestPutEnv
33
     */
34
    public function testSetEnv($put, $var, $value)
0 ignored issues
show
Unused Code introduced by
The parameter $put is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

34
    public function testSetEnv(/** @scrutinizer ignore-unused */ $put, $var, $value)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
35
    {
36
        Environment::setEnv($var, $value);
37
        $this->assertEquals($value, Environment::getEnv($var));
38
    }
39
40
    public function testRestoreEnv()
41
    {
42
        // Set and backup original vars
43
        Environment::putEnv('_ENVTEST_RESTORED=initial');
44
        $vars = Environment::getVariables();
45
        $this->assertEquals('initial', Environment::getEnv('_ENVTEST_RESTORED'));
46
47
        // Modify enironment
48
        Environment::putEnv('_ENVTEST_RESTORED=new');
49
        $this->assertEquals('initial', $vars['env']['_ENVTEST_RESTORED']);
50
        $this->assertEquals('new', Environment::getEnv('_ENVTEST_RESTORED'));
51
52
        // Restore
53
        Environment::setVariables($vars);
54
        $this->assertEquals('initial', Environment::getEnv('_ENVTEST_RESTORED'));
55
    }
56
57
    public function testGetVariables()
58
    {
59
        $GLOBALS['test'] = 'global';
60
        $vars = Environment::getVariables();
61
        $this->assertArrayHasKey('test', $vars);
62
        $this->assertEquals('global', $vars['test']);
63
        $this->assertEquals('global', $GLOBALS['test']);
64
65
        $vars['test'] = 'fail';
66
        $this->assertEquals('fail', $vars['test']);
67
        $this->assertEquals('global', $GLOBALS['test']);
68
    }
69
}
70