summaryrefslogtreecommitdiff
path: root/vendor/symfony/console/Tests/Tester/CommandTesterTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/symfony/console/Tests/Tester/CommandTesterTest.php')
-rw-r--r--vendor/symfony/console/Tests/Tester/CommandTesterTest.php81
1 files changed, 80 insertions, 1 deletions
diff --git a/vendor/symfony/console/Tests/Tester/CommandTesterTest.php b/vendor/symfony/console/Tests/Tester/CommandTesterTest.php
index b54c00e8..8d86da43 100644
--- a/vendor/symfony/console/Tests/Tester/CommandTesterTest.php
+++ b/vendor/symfony/console/Tests/Tester/CommandTesterTest.php
@@ -11,12 +11,17 @@
namespace Symfony\Component\Console\Tests\Tester;
+use PHPUnit\Framework\TestCase;
use Symfony\Component\Console\Application;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Output\Output;
use Symfony\Component\Console\Tester\CommandTester;
+use Symfony\Component\Console\Question\Question;
+use Symfony\Component\Console\Helper\HelperSet;
+use Symfony\Component\Console\Helper\QuestionHelper;
+use Symfony\Component\Console\Style\SymfonyStyle;
-class CommandTesterTest extends \PHPUnit_Framework_TestCase
+class CommandTesterTest extends TestCase
{
protected $command;
protected $tester;
@@ -81,4 +86,78 @@ class CommandTesterTest extends \PHPUnit_Framework_TestCase
// check that there is no need to pass the command name here
$this->assertEquals(0, $tester->execute(array()));
}
+
+ public function testCommandWithInputs()
+ {
+ $questions = array(
+ 'What\'s your name?',
+ 'How are you?',
+ 'Where do you come from?',
+ );
+
+ $command = new Command('foo');
+ $command->setHelperSet(new HelperSet(array(new QuestionHelper())));
+ $command->setCode(function ($input, $output) use ($questions, $command) {
+ $helper = $command->getHelper('question');
+ $helper->ask($input, $output, new Question($questions[0]));
+ $helper->ask($input, $output, new Question($questions[1]));
+ $helper->ask($input, $output, new Question($questions[2]));
+ });
+
+ $tester = new CommandTester($command);
+ $tester->setInputs(array('Bobby', 'Fine', 'France'));
+ $tester->execute(array());
+
+ $this->assertEquals(0, $tester->getStatusCode());
+ $this->assertEquals(implode('', $questions), $tester->getDisplay(true));
+ }
+
+ /**
+ * @expectedException \RuntimeException
+ * @expectedMessage Aborted
+ */
+ public function testCommandWithWrongInputsNumber()
+ {
+ $questions = array(
+ 'What\'s your name?',
+ 'How are you?',
+ 'Where do you come from?',
+ );
+
+ $command = new Command('foo');
+ $command->setHelperSet(new HelperSet(array(new QuestionHelper())));
+ $command->setCode(function ($input, $output) use ($questions, $command) {
+ $helper = $command->getHelper('question');
+ $helper->ask($input, $output, new Question($questions[0]));
+ $helper->ask($input, $output, new Question($questions[1]));
+ $helper->ask($input, $output, new Question($questions[2]));
+ });
+
+ $tester = new CommandTester($command);
+ $tester->setInputs(array('Bobby', 'Fine'));
+ $tester->execute(array());
+ }
+
+ public function testSymfonyStyleCommandWithInputs()
+ {
+ $questions = array(
+ 'What\'s your name?',
+ 'How are you?',
+ 'Where do you come from?',
+ );
+
+ $command = new Command('foo');
+ $command->setCode(function ($input, $output) use ($questions, $command) {
+ $io = new SymfonyStyle($input, $output);
+ $io->ask($questions[0]);
+ $io->ask($questions[1]);
+ $io->ask($questions[2]);
+ });
+
+ $tester = new CommandTester($command);
+ $tester->setInputs(array('Bobby', 'Fine', 'France'));
+ $tester->execute(array());
+
+ $this->assertEquals(0, $tester->getStatusCode());
+ }
}