Update Composer, update everything
This commit is contained in:
parent
ea3e94409f
commit
dda5c284b6
19527 changed files with 1135420 additions and 351004 deletions
109
vendor/consolidation/site-alias/tests/SiteAliasCommandsTest.php
vendored
Normal file
109
vendor/consolidation/site-alias/tests/SiteAliasCommandsTest.php
vendored
Normal file
|
@ -0,0 +1,109 @@
|
|||
<?php
|
||||
|
||||
namespace Consolidation\SiteAlias;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Console\Output\BufferedOutput;
|
||||
|
||||
class ExampleCommandsTest extends TestCase
|
||||
{
|
||||
/** @var string[] */
|
||||
protected $commandClasses;
|
||||
|
||||
/** @var string */
|
||||
protected $appName;
|
||||
|
||||
/** @var string */
|
||||
protected $appVersion;
|
||||
|
||||
const STATUS_OK = 0;
|
||||
const STATUS_ERROR = 1;
|
||||
|
||||
/**
|
||||
* Instantiate a new runner
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
// Store the command classes we are going to test
|
||||
$this->commandClasses = [ \Consolidation\SiteAlias\Cli\SiteAliasCommands::class ];
|
||||
|
||||
// Define our invariants for our test
|
||||
$this->appName = 'TestFixtureApp';
|
||||
$this->appVersion = '1.0.1';
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testExample.
|
||||
*
|
||||
* Return an array of arrays, each of which contains the parameter
|
||||
* values to be used in one invocation of the testExample test function.
|
||||
*/
|
||||
public function exampleTestCommandParameters()
|
||||
{
|
||||
return [
|
||||
|
||||
[
|
||||
'Add search location: /fixtures/sitealiases/sites', self::STATUS_ERROR,
|
||||
'site:list', '/fixtures/sitealiases/sites',
|
||||
],
|
||||
|
||||
[
|
||||
'List available site aliases', self::STATUS_OK,
|
||||
'list',
|
||||
],
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Test our example class. Each time this function is called, it will
|
||||
* be passed data from the data provider function idendified by the
|
||||
* dataProvider annotation.
|
||||
*
|
||||
* @dataProvider exampleTestCommandParameters
|
||||
*/
|
||||
public function testExampleCommands($expectedOutput, $expectedStatus, $variable_args)
|
||||
{
|
||||
// Create our argv array and run the command
|
||||
$argv = $this->argv(func_get_args());
|
||||
list($actualOutput, $statusCode) = $this->execute($argv);
|
||||
|
||||
// Confirm that our output and status code match expectations
|
||||
$this->assertContains($expectedOutput, $actualOutput);
|
||||
$this->assertEquals($expectedStatus, $statusCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare our $argv array; put the app name in $argv[0] followed by
|
||||
* the command name and all command arguments and options.
|
||||
*/
|
||||
protected function argv($functionParameters)
|
||||
{
|
||||
$argv = $functionParameters;
|
||||
array_shift($argv);
|
||||
array_shift($argv);
|
||||
array_unshift($argv, $this->appName);
|
||||
|
||||
// TODO: replace paths beginning with '/fixtures' with actual path to fixture data
|
||||
|
||||
return $argv;
|
||||
}
|
||||
|
||||
/**
|
||||
* Simulated front controller
|
||||
*/
|
||||
protected function execute($argv)
|
||||
{
|
||||
// Define a global output object to capture the test results
|
||||
$output = new BufferedOutput();
|
||||
|
||||
// We can only call `Runner::execute()` once; then we need to tear down.
|
||||
$runner = new \Robo\Runner($this->commandClasses);
|
||||
$statusCode = $runner->execute($argv, $this->appName, $this->appVersion, $output);
|
||||
\Robo\Robo::unsetContainer();
|
||||
|
||||
// Return the output and status code.
|
||||
$actualOutput = trim($output->fetch());
|
||||
return [$actualOutput, $statusCode];
|
||||
}
|
||||
}
|
Reference in a new issue