public function mergeApplicationDefinition() { return parent::mergeApplicationDefinition(); }
$command->mergeApplicationDefinition(); $t->pass('->mergeApplicationDefinition() does nothing if application is not set'); // ->run() $t->diag('->run()'); $command = new TestCommand(); $command->setApplication($application); $tester = new CommandTester($command); try { $tester->execute(array('--bar' => true)); $t->fail('->run() throws a \\RuntimeException when the input does not validate the current Definition'); } catch (\RuntimeException $e) { $t->pass('->run() throws a \\RuntimeException when the input does not validate the current Definition'); } $t->is($tester->execute(array(), array('interactive' => true)), "interact called\nexecute called\n", '->run() calls the interact() method if the input is interactive'); $t->is($tester->execute(array(), array('interactive' => false)), "execute called\n", '->run() does not call the interact() method if the input is not interactive'); $command = new Command('foo'); try { $command->run(new StringInput(''), new NullOutput()); $t->fail('->run() throws a \\LogicException if the execute() method has not been overriden and no code has been provided'); } catch (\LogicException $e) { $t->pass('->run() throws a \\LogicException if the execute() method has not been overriden and no code has been provided'); } // ->setCode() $t->diag('->setCode()'); $command = new TestCommand(); $command->setApplication($application); $ret = $command->setCode(function (InputInterface $input, OutputInterface $output) { $output->write('from the code...'); }); $t->is($ret, $command, '->setCode() implements a fluent interface'); $tester = new CommandTester($command);
/** * Adds a command object. * * If a command with the same name already exists, it will be overridden. * * @param Command $command A Command object * * @return Command The registered command */ public function addCommand(Command $command) { $command->setApplication($this); $this->commands[$command->getFullName()] = $command; foreach ($command->getAliases() as $alias) { $this->aliases[$alias] = $command; } return $command; }
<?php /* * This file is part of the symfony package. * (c) Fabien Potencier <*****@*****.**> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ require_once __DIR__ . '/../../../../bootstrap.php'; use Symfony\Components\CLI\Command\Command; use Symfony\Components\CLI\Output\Output; use Symfony\Components\CLI\Tester\CommandTester; $t = new LimeTest(6); $command = new Command('foo'); $command->addArgument('command'); $command->addArgument('foo'); $command->setCode(function ($input, $output) { $output->write('foo'); }); $tester = new CommandTester($command); $tester->execute(array('foo' => 'bar'), array('interactive' => false, 'decorated' => false, 'verbosity' => Output::VERBOSITY_VERBOSE)); // ->execute() $t->diag('->execute()'); $t->is($tester->getInput()->isInteractive(), false, '->execute() takes an interactive option'); $t->is($tester->getOutput()->isDecorated(), false, '->execute() takes a decorated option'); $t->is($tester->getOutput()->getVerbosity(), Output::VERBOSITY_VERBOSE, '->execute() takes a verbosity option'); // ->getInput() $t->diag('->getInput()'); $t->is($tester->getInput()->getArgument('foo'), 'bar', '->getInput() returns the current input instance'); // ->getOutput()