$this->assertEquals(array('foo'=>$this->foo,'bar'=>$this->bar),$definition->getArguments(),'__construct() takes an array of InputArgument objects as its first argument');
}
publicfunctiontestConstructorOptions()
{
$this->initializeOptions();
$definition=newInputDefinition();
$this->assertEquals(array(),$definition->getOptions(),'__construct() creates a new InputDefinition object');
$this->assertEquals(array('foo'=>$this->foo,'bar'=>$this->bar),$definition->getOptions(),'__construct() takes an array of InputOption objects as its first argument');
}
publicfunctiontestSetArguments()
{
$this->initializeArguments();
$definition=newInputDefinition();
$definition->setArguments(array($this->foo));
$this->assertEquals(array('foo'=>$this->foo),$definition->getArguments(),'->setArguments() sets the array of InputArgument objects');
$definition->setArguments(array($this->bar));
$this->assertEquals(array('bar'=>$this->bar),$definition->getArguments(),'->setArguments() clears all InputArgument objects');
}
publicfunctiontestAddArguments()
{
$this->initializeArguments();
$definition=newInputDefinition();
$definition->addArguments(array($this->foo));
$this->assertEquals(array('foo'=>$this->foo),$definition->getArguments(),'->addArguments() adds an array of InputArgument objects');
$definition->addArguments(array($this->bar));
$this->assertEquals(array('foo'=>$this->foo,'bar'=>$this->bar),$definition->getArguments(),'->addArguments() does not clear existing InputArgument objects');
}
publicfunctiontestAddArgument()
{
$this->initializeArguments();
$definition=newInputDefinition();
$definition->addArgument($this->foo);
$this->assertEquals(array('foo'=>$this->foo),$definition->getArguments(),'->addArgument() adds a InputArgument object');
$definition->addArgument($this->bar);
$this->assertEquals(array('foo'=>$this->foo,'bar'=>$this->bar),$definition->getArguments(),'->addArgument() adds a InputArgument object');
// new InputArgument('foo4', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, '', array(1, 2)),
));
$this->assertEquals(array('foo1'=>null,'foo2'=>'default','foo3'=>array()),$definition->getArgumentDefaults(),'->getArgumentDefaults() return the default values for each argument');
$this->assertEquals(array('foo4'=>array(1,2)),$definition->getArgumentDefaults(),'->getArgumentDefaults() return the default values for each argument');
$this->assertEquals(array('foo'=>$this->foo),$definition->getOptions(),'->addOptions() adds an array of InputOption objects');
$definition->addOptions(array($this->bar));
$this->assertEquals(array('foo'=>$this->foo,'bar'=>$this->bar),$definition->getOptions(),'->addOptions() does not clear existing InputOption objects');
}
publicfunctiontestAddOption()
{
$this->initializeOptions();
$definition=newInputDefinition();
$definition->addOption($this->foo);
$this->assertEquals(array('foo'=>$this->foo),$definition->getOptions(),'->addOption() adds a InputOption object');
$definition->addOption($this->bar);
$this->assertEquals(array('foo'=>$this->foo,'bar'=>$this->bar),$definition->getOptions(),'->addOption() adds a InputOption object');
array(newInputDefinition(array(newInputOption('foo'))),'[--foo]','puts optional options in square brackets'),
array(newInputDefinition(array(newInputOption('foo','f'))),'[-f|--foo]','separates shortcut with a pipe'),
array(newInputDefinition(array(newInputOption('foo','f',InputOption::VALUE_REQUIRED))),'[-f|--foo FOO]','uses shortcut as value placeholder'),
array(newInputDefinition(array(newInputOption('foo','f',InputOption::VALUE_OPTIONAL))),'[-f|--foo [FOO]]','puts optional values in square brackets'),
array(newInputDefinition(array(newInputArgument('foo',InputArgument::REQUIRED))),'<foo>','puts arguments in angle brackets'),
array(newInputDefinition(array(newInputArgument('foo'))),'[<foo>]','puts optional arguments in square brackets'),
array(newInputDefinition(array(newInputArgument('foo',InputArgument::IS_ARRAY))),'[<foo>]...','uses an ellipsis for array arguments'),
array(newInputDefinition(array(newInputArgument('foo',InputArgument::REQUIRED|InputArgument::IS_ARRAY))),'<foo> (<foo>)...','uses parenthesis and ellipsis for required array arguments'),
array(newInputDefinition(array(newInputOption('foo'),newInputArgument('foo',InputArgument::REQUIRED))),'[--foo] [--] <foo>','puts [--] between options and arguments'),
$this->assertStringEqualsFile(self::$fixtures.'/definition_astext.txt',$definition->asText(),'->asText() returns a textual representation of the InputDefinition');
newInputOption('bar','b',InputOption::VALUE_OPTIONAL,'The bar option','bar'),
));
$this->assertXmlStringEqualsXmlFile(self::$fixtures.'/definition_asxml.txt',$definition->asXml(),'->asXml() returns an XML representation of the InputDefinition');