added test to verify ArgvInput->parse() failure with array input definition

This commit is contained in:
Degory Valentine 2011-02-28 10:40:32 -05:00 committed by Fabien Potencier
parent 0306c9aa66
commit 057e86161e
2 changed files with 9 additions and 1 deletions

View File

@ -164,7 +164,7 @@ class ArgvInput extends Input
// unexpected argument
} else {
throw new RuntimeException('Too many arguments.');
throw new \RuntimeException('Too many arguments.');
}
}

View File

@ -135,6 +135,14 @@ class ArgvInputTest extends \PHPUnit_Framework_TestCase
$input = new TestInput(array('cli.php', '-fbbar'));
$input->bind(new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL), new InputOption('bar', 'b', InputOption::VALUE_OPTIONAL))));
$this->assertEquals(array('foo' => 'bbar', 'bar' => null), $input->getOptions(), '->parse() parses short options when they are aggregated as a single one and one of them takes a value');
try {
$input = new TestInput(array('cli.php', 'foo', 'bar', 'baz', 'bat'));
$input->bind(new InputDefinition(array(new InputArgument('name', InputArgument::IS_ARRAY))));
$this->assertEquals(array('name' => array('foo', 'bar', 'baz', 'bat')), $input->getArguments(), '->parse() parses array arguments');
} catch (\RuntimeException $e) {
$this->assertNotEquals('Too many arguments.', $e->getMessage(), '->parse() parses array arguments');
}
}
public function testGetFirstArgument()