Add pear modules, mail and net_smtp via composer (#93)
Add pear modules, mail and net_smtp via composer, remove php 5.6 build due to phpunit 6
This commit is contained in:
130
lib/composer/vendor/consolidation/config/tests/ConfigForCommandTest.php
vendored
Normal file
130
lib/composer/vendor/consolidation/config/tests/ConfigForCommandTest.php
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
namespace Consolidation\Config\Inject;
|
||||
|
||||
use Consolidation\Config\Config;
|
||||
use Consolidation\TestUtils\MyFooCommand;
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\ArgvInput;
|
||||
use Symfony\Component\Console\Input\StringInput;
|
||||
use Symfony\Component\Console\Output\BufferedOutput;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
class ConfigForCommandTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
protected $config;
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
$data = [
|
||||
// Global options
|
||||
'options' => [
|
||||
'global' => 'from-config',
|
||||
],
|
||||
// Define some configuration settings for the options for
|
||||
// the commands my:foo and my:bar.
|
||||
'command' => [
|
||||
'my' => [
|
||||
// commands.my.options.* apply to all my:* commands.
|
||||
'options' => [
|
||||
'dir' => '/etc/common',
|
||||
'priority' => 'normal',
|
||||
],
|
||||
'foo' => [
|
||||
// commands.my.foo.options.* apply only to the my:foo command.
|
||||
'options' => [
|
||||
'name' => 'baz',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
$this->config = new Config($data);
|
||||
}
|
||||
|
||||
public function testInjection()
|
||||
{
|
||||
$command = new MyFooCommand();
|
||||
$input = new StringInput('my:foo');
|
||||
|
||||
list($status, $output) = $this->runCommandViaApplication($command, $input);
|
||||
|
||||
$expectedOutput = <<< EOT
|
||||
Enter my:foo
|
||||
dir: /etc/common
|
||||
name: baz
|
||||
other: fish
|
||||
EOT;
|
||||
|
||||
$this->assertEquals(0, $status);
|
||||
$this->assertEquals($expectedOutput, $output);
|
||||
}
|
||||
|
||||
public function testInjectionWithOverride()
|
||||
{
|
||||
$command = new MyFooCommand();
|
||||
$input = new StringInput('my:foo --name=Fred');
|
||||
|
||||
list($status, $output) = $this->runCommandViaApplication($command, $input);
|
||||
|
||||
$expectedOutput = <<< EOT
|
||||
Enter my:foo
|
||||
dir: /etc/common
|
||||
name: Fred
|
||||
other: fish
|
||||
EOT;
|
||||
|
||||
$this->assertEquals(0, $status);
|
||||
$this->assertEquals($expectedOutput, $output);
|
||||
}
|
||||
|
||||
public function testHelpDefaultInjection()
|
||||
{
|
||||
$command = new MyFooCommand();
|
||||
$input = new StringInput('help my:foo');
|
||||
|
||||
list($status, $output) = $this->runCommandViaApplication($command, $input);
|
||||
|
||||
$expectedOutput = <<< EOT
|
||||
What is the name of the thing we are naming [default: "baz"]
|
||||
EOT;
|
||||
|
||||
$this->assertEquals(0, $status);
|
||||
$this->assertContains($expectedOutput, $output);
|
||||
|
||||
$expectedOutput = <<< EOT
|
||||
A certain global option. [default: "from-config"]
|
||||
EOT;
|
||||
|
||||
$this->assertContains($expectedOutput, $output);
|
||||
}
|
||||
|
||||
protected function runCommandViaApplication($command, $input)
|
||||
{
|
||||
$application = new Application('TestApplication', '0.0.0');
|
||||
$application->getDefinition()
|
||||
->addOption(
|
||||
new InputOption('--global', null, InputOption::VALUE_REQUIRED, 'A certain global option.', 'hardcoded')
|
||||
);
|
||||
|
||||
$output = new BufferedOutput();
|
||||
|
||||
$configInjector = new ConfigForCommand($this->config);
|
||||
$configInjector->setApplication($application);
|
||||
|
||||
$eventDispatcher = new \Symfony\Component\EventDispatcher\EventDispatcher();
|
||||
$eventDispatcher->addSubscriber($configInjector);
|
||||
$application->setDispatcher($eventDispatcher);
|
||||
|
||||
$application->setAutoExit(false);
|
||||
$application->add($command);
|
||||
|
||||
$statusCode = $application->run($input, $output);
|
||||
$commandOutput = trim($output->fetch());
|
||||
|
||||
return [$statusCode, $commandOutput];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user