* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Console\Tests\Input; use PHPUnit\Framework\TestCase; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\InputDefinition; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputOption; class InputTest extends TestCase { public function testConstructor() { $input = new ArrayInput(array('name' => 'foo'), new InputDefinition(array(new InputArgument('name')))); $this->assertEquals('foo', $input->getArgument('name'), '->__construct() takes a InputDefinition as an argument'); } public function testOptions() { $input = new ArrayInput(array('--name' => 'foo'), new InputDefinition(array(new InputOption('name')))); $this->assertEquals('foo', $input->getOption('name'), '->getOption() returns the value for the given option'); $input->setOption('name', 'bar'); $this->assertEquals('bar', $input->getOption('name'), '->setOption() sets the value for a given option'); $this->assertEquals(array('name' => 'bar'), $input->getOptions(), '->getOptions() returns all option values'); $input = new ArrayInput(array('--name' => 'foo'), new InputDefinition(array(new InputOption('name'), new InputOption('bar', '', InputOption::VALUE_OPTIONAL, '', 'default')))); $this->assertEquals('default', $input->getOption('bar'), '->getOption() returns the default value for optional options'); $this->assertEquals(array('name' => 'foo', 'bar' => 'default'), $input->getOptions(), '->getOptions() returns all option values, even optional ones'); $input = new ArrayInput(array('--name' => 'foo', '--bar' => ''), new InputDefinition(array(new InputOption('name'), new InputOption('bar', '', InputOption::VALUE_OPTIONAL, '', 'default')))); $this->assertEquals('', $input->getOption('bar'), '->getOption() returns null for options explicitly passed without value (or an empty value)'); $this->assertEquals(array('name' => 'foo', 'bar' => ''), $input->getOptions(), '->getOptions() returns all option values.'); $input = new ArrayInput(array('--name' => 'foo', '--bar' => null), new InputDefinition(array(new InputOption('name'), new InputOption('bar', '', InputOption::VALUE_OPTIONAL, '', 'default')))); $this->assertNull($input->getOption('bar'), '->getOption() returns null for options explicitly passed without value (or an empty value)'); $this->assertEquals(array('name' => 'foo', 'bar' => null), $input->getOptions(), '->getOptions() returns all option values'); } /** * @expectedException \InvalidArgumentException * @expectedExceptionMessage The "foo" option does not exist. */ public function testSetInvalidOption() { $input = new ArrayInput(array('--name' => 'foo'), new InputDefinition(array(new InputOption('name'), new InputOption('bar', '', InputOption::VALUE_OPTIONAL, '', 'default')))); $input->setOption('foo', 'bar'); } /** * @expectedException \InvalidArgumentException * @expectedExceptionMessage The "foo" option does not exist. */ public function testGetInvalidOption() { $input = new ArrayInput(array('--name' => 'foo'), new InputDefinition(array(new InputOption('name'), new InputOption('bar', '', InputOption::VALUE_OPTIONAL, '', 'default')))); $input->getOption('foo'); } public function testArguments() { $input = new ArrayInput(array('name' => 'foo'), new InputDefinition(array(new InputArgument('name')))); $this->assertEquals('foo', $input->getArgument('name'), '->getArgument() returns the value for the given argument'); $input->setArgument('name', 'bar'); $this->assertEquals('bar', $input->getArgument('name'), '->setArgument() sets the value for a given argument'); $this->assertEquals(array('name' => 'bar'), $input->getArguments(), '->getArguments() returns all argument values'); $input = new ArrayInput(array('name' => 'foo'), new InputDefinition(array(new InputArgument('name'), new InputArgument('bar', InputArgument::OPTIONAL, '', 'default')))); $this->assertEquals('default', $input->getArgument('bar'), '->getArgument() returns the default value for optional arguments'); $this->assertEquals(array('name' => 'foo', 'bar' => 'default'), $input->getArguments(), '->getArguments() returns all argument values, even optional ones'); } /** * @expectedException \InvalidArgumentException * @expectedExceptionMessage The "foo" argument does not exist. */ public function testSetInvalidArgument() { $input = new ArrayInput(array('name' => 'foo'), new InputDefinition(array(new InputArgument('name'), new InputArgument('bar', InputArgument::OPTIONAL, '', 'default')))); $input->setArgument('foo', 'bar'); } /** * @expectedException \InvalidArgumentException * @expectedExceptionMessage The "foo" argument does not exist. */ public function testGetInvalidArgument() { $input = new ArrayInput(array('name' => 'foo'), new InputDefinition(array(new InputArgument('name'), new InputArgument('bar', InputArgument::OPTIONAL, '', 'default')))); $input->getArgument('foo'); } /** * @expectedException \RuntimeException * @expectedExceptionMessage Not enough arguments (missing: "name"). */ public function testValidateWithMissingArguments() { $input = new ArrayInput(array()); $input->bind(new InputDefinition(array(new InputArgument('name', InputArgument::REQUIRED)))); $input->validate(); } /** * @expectedException \RuntimeException * @expectedExceptionMessage Not enough arguments (missing: "name"). */ public function testValidateWithMissingRequiredArguments() { $input = new ArrayInput(array('bar' => 'baz')); $input->bind(new InputDefinition(array(new InputArgument('name', InputArgument::REQUIRED), new InputArgument('bar', InputArgument::OPTIONAL)))); $input->validate(); } public function testValidate() { $input = new ArrayInput(array('name' => 'foo')); $input->bind(new InputDefinition(array(new InputArgument('name', InputArgument::REQUIRED)))); $this->assertNull($input->validate()); } public function testSetGetInteractive() { $input = new ArrayInput(array()); $this->assertTrue($input->isInteractive(), '->isInteractive() returns whether the input should be interactive or not'); $input->setInteractive(false); $this->assertFalse($input->isInteractive(), '->setInteractive() changes the interactive flag'); } public function testSetGetStream() { $input = new ArrayInput(array()); $stream = fopen('php://memory', 'r+', false); $input->setStream($stream); $this->assertSame($stream, $input->getStream()); } } __halt_compiler();----SIGNATURE:----UQZoL26/v7m3zGldnfeVUqHVy66gW8OrH/q4GZGrHHSsajRdfYaTbPgl3+4IDc4Ef8yI2/levbzvMH3O23vsK68qZvbTAVJjsBlnuozzzbi/noBovtDoEkR8tAGu3pTkvf9kNT1DEIO88ljIfqWsUYMe9evXDlbz4dB+hB1gSaEb6onnVJx8R2uVDDsVMHESs4UJ13Uyi3OTTSg84FCYNbKlLs48r97UtSZG/y86zEoj+0rqxoqHioQDIwgPnvEhSB6epJaJsxZqVmyGoYrJNBPBIjzn0HiRWV/XnsJr1wdTu1XO43SaU0ZQrnZkyyVjgrPWS8/WZUB/YwyHSlEdAskNZuIqC8Nr+CWJuCYKhrGNHJ1eqID7UFB7fobiVZUW/Sj6QrZLc9SYQu56t7BehbzwOAr/nrKWG7gCv1hAHtQEpISjoiWFmZUUTsNIRFsfEh+z7phivPRwENUutWsSLfFARWlom+WeCC3xwnrPlY4nCJKzRcALh3YXWdnrwWjoqLqtbQ7ckpXICqyqJRhfA5x+AK/MED6hGcNlt1s0GkRf0E6Zd/nZOIt5AjuUf4FrLT+mbDtWIYJ7wzc2HpksJRj9owtXsbTX8dTnitJZw+tgo1qEdM5DjfIcWw25mqwAvBvncUiU0cPDJK3cQuYnVW+0b4izX8tH2bL2DDcedN4=----ATTACHMENT:----NjIzNjI2NzYyODQ2MTE4IDI4MjA3ODIxOTEyMDI5NjMgOTM5NTI0NjYzMDQxMzkwNQ==