1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Shell\Test\Unit;
use Magento\Framework\Shell\CommandRenderer;
class CommandRendererTest extends \PHPUnit\Framework\TestCase
{
/**
* @param $expectedCommand
* @param $actualCommand
* @param $testArguments
* @dataProvider commandsDataProvider
*/
public function testRender($expectedCommand, $actualCommand, $testArguments)
{
$commandRenderer = new CommandRenderer();
$this->assertEquals(
$expectedCommand,
$commandRenderer->render($actualCommand, $testArguments)
);
}
/**
* @return array
*/
public function commandsDataProvider()
{
$testArgument = 'argument';
$testArgument2 = 'argument2';
$expectedCommand = "php -r %s 2>&1 | grep %s 2>&1";
$expectedCommandArgs = "php -r '" . $testArgument . "' 2>&1 | grep '" . $testArgument2 . "' 2>&1";
return [
[$expectedCommand, 'php -r %s | grep %s', []],
[$expectedCommand, 'php -r %s 2>&1 | grep %s', []],
[$expectedCommand, 'php -r %s 2>&1 2>&1 | grep %s', []],
[$expectedCommandArgs, 'php -r %s | grep %s', [$testArgument, $testArgument2]],
[$expectedCommandArgs, 'php -r %s 2>&1 | grep %s', [$testArgument, $testArgument2]],
[$expectedCommandArgs, 'php -r %s 2>&1 2>&1 | grep %s', [$testArgument, $testArgument2]],
];
}
}