Completed
Push — master ( d3a073...5737c8 )
by Greg
02:21
created

tests/unit/ConfigurationInjectionTest.php (13 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
use Robo\Robo;
3
4
use Consolidation\Config\Loader\ConfigProcessor;
5
use Consolidation\Config\Loader\YamlConfigLoader;
6
7
class ConfigurationInjectionTest extends \Codeception\TestCase\Test
8
{
9
    /**
10
     * @var \Robo\Runner
11
     */
12
    private $runner;
13
14
    /**
15
     * @var \CodeGuy
16
     */
17
    protected $guy;
18
19
    public function _before()
20
    {
21
        $this->runner = new \Robo\Runner('\Robo\RoboFileFixture');
22
    }
23
24 View Code Duplication
    public function testNoOptionsNoConfiguration()
25
    {
26
        // Run without any config and without any options
27
        $argv = ['placeholder', 'test:simple-list'];
28
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
29
30
        $this->guy->seeInOutput("a: '1'");
31
        $this->guy->seeInOutput("b: '2'");
32
    }
33
34 View Code Duplication
    public function testOptionsButNoConfiguration()
35
    {
36
        // Set one option, but provide no config
37
        $argv = ['placeholder', 'test:simple-list', '--b=3'];
38
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
39
40
        $this->guy->seeInOutput("a: '1'");
41
        $this->guy->seeInOutput("b: '3'");
42
    }
43
44 View Code Duplication
    public function testWithConfigurationButNoOptions()
45
    {
46
        \Robo\Robo::config()->set('command.test.simple-list.options.a', '4');
47
        \Robo\Robo::config()->set('command.test.simple-list.options.b', '5');
48
49
        $argv = ['placeholder', 'test:simple-list'];
50
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
51
52
        $this->guy->seeInOutput("a: '4'");
53
        $this->guy->seeInOutput("b: '5'");
54
    }
55
56 View Code Duplication
    public function testHelpWithoutConfiguration()
57
    {
58
        $argv = ['placeholder', 'help', 'test:simple-list'];
59
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
60
61
        $this->guy->seeInOutput('[default: "1"]');
62
        $this->guy->seeInOutput('[default: "2"]');
63
    }
64
65 View Code Duplication
    public function testHelpWithConfigurationButNoOptions()
66
    {
67
        \Robo\Robo::config()->set('command.test.simple-list.options.a', '4');
68
        \Robo\Robo::config()->set('command.test.simple-list.options.b', '5');
69
70
        $argv = ['placeholder', 'help', 'test:simple-list'];
71
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
72
73
        $this->guy->seeInOutput('[default: "4"]');
74
        $this->guy->seeInOutput('[default: "5"]');
75
    }
76
77 View Code Duplication
    public function testWithConfigurationAndOptionOverride()
78
    {
79
        \Robo\Robo::config()->set('command.test.simple-list.options.a', '4');
80
        \Robo\Robo::config()->set('command.test.simple-list.options.b', '5');
81
82
        $argv = ['placeholder', 'test:simple-list', '--b=6'];
83
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
84
85
        $this->guy->seeInOutput("a: '4'");
86
        $this->guy->seeInOutput("b: '6'");
87
    }
88
89 View Code Duplication
    public function testWithConfigurationFallbacks()
90
    {
91
        \Robo\Robo::config()->set('command.test.simple-list.options.a', '4');
92
        \Robo\Robo::config()->set('command.test.options.b', '7');
93
94
        $argv = ['placeholder', 'test:simple-list'];
95
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
96
97
        $this->guy->seeInOutput("a: '4'");
98
        $this->guy->seeInOutput("b: '7'");
99
    }
100
101 View Code Duplication
    public function testSettingConfigurationFromCommandOptions()
102
    {
103
        $argv = ['placeholder', 'test:simple-list', '-D', 'config.key=value'];
104
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
105
106
        $this->guy->seeInOutput("a: '1'");
107
        $this->guy->seeInOutput("b: '2'");
108
109
        $actual = \Robo\Robo::config()->get('config.key');
110
        $this->assertEquals('value', $actual);
111
    }
112
113 View Code Duplication
    public function testWithConfigLoader()
114
    {
115
        $loader = new YamlConfigLoader();
116
        $loader->load(dirname(__DIR__) . '/_data/robo.yml');
117
118
        \Robo\Robo::config()->import($loader->export());
119
120
        $argv = ['placeholder', 'test:simple-list'];
121
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
122
123
        $this->guy->seeInOutput("a: '12'");
124
        $this->guy->seeInOutput("b: '13'");
125
    }
126
127 View Code Duplication
    public function testWithConfigLoaderAndCliOverride()
128
    {
129
        $loader = new YamlConfigLoader();
130
        $loader->load(dirname(__DIR__) . '/_data/robo.yml');
131
132
        \Robo\Robo::config()->import($loader->export());
133
134
        $argv = ['placeholder', 'test:simple-list', '--b=3'];
135
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
136
137
        $this->guy->seeInOutput("a: '12'");
138
        $this->guy->seeInOutput("b: '3'");
139
    }
140
141
    public function testWithConfigProcessor()
142
    {
143
        $processor = new ConfigProcessor();
144
        $loader = new YamlConfigLoader();
145
        $processor->extend($loader->load(dirname(__DIR__) . '/_data/robo.yml'));
146
        $processor->extend($loader->load(dirname(__DIR__) . '/_data/robo2.yml'));
147
        \Robo\Robo::config()->import($processor->export());
148
149
        $argv = ['placeholder', 'test:simple-list'];
150
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
151
152
        $this->guy->seeInOutput("a: '112'");
153
        $this->guy->seeInOutput("b: '13'");
154
    }
155
156 View Code Duplication
    public function testCommandWithTaskConfiguration()
157
    {
158
        $loader = new YamlConfigLoader();
159
        $loader->load(dirname(__DIR__) . '/_data/robo.yml');
160
161
        \Robo\Robo::config()->import($loader->export());
162
163
        $argv = ['placeholder', 'test:exec', '--simulate'];
164
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
165
166
        // `task.Base.Exec.settings.dir` is defined in loaded robo.yml configuration file.
167
        $this->guy->seeInOutput("->dir('/some/dir')");
168
    }
169
170 View Code Duplication
    public function testCommandWithFallbackTaskConfiguration()
171
    {
172
        $loader = new YamlConfigLoader();
173
        $loader->load(dirname(__DIR__) . '/_data/falback-task-config-robo.yml');
174
175
        \Robo\Robo::config()->import($loader->export());
176
177
        $argv = ['placeholder', 'test:exec', '--simulate'];
178
        $result = $this->runner->execute($argv, null, null, $this->guy->capturedOutputStream());
0 ignored issues
show
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
179
180
        // `task.Base.settings.dir` is defined in loaded robo.yml configuration file.
181
        $this->guy->seeInOutput("->dir('/some/other/dir')");
182
    }
183
}
184