/**
  * Test adding multiple options.
  *
  * @return void
  */
 public function testAddOptions()
 {
     $parser = new ConsoleOptionParser('something', FALSE);
     $result = $parser->addOptions(array('name' => array('help' => 'The name'), 'other' => array('help' => 'The other arg')));
     $this->assertEquals($parser, $result, 'addOptions is not chainable.');
     $result = $parser->options();
     $this->assertEquals(3, count($result), 'Not enough options');
 }
Ejemplo n.º 2
0
 /**
  * Build a parser from an array. Uses an array like
  *
  * {{{
  * $spec = array(
  *		'description' => 'text',
  *		'epilog' => 'text',
  *		'arguments' => array(
  *			// list of arguments compatible with addArguments.
  *		),
  *		'options' => array(
  *			// list of options compatible with addOptions
  *		),
  *		'subcommands' => array(
  *			// list of subcommands to add.
  *		)
  * );
  * }}}
  *
  * @param array $spec The spec to build the OptionParser with.
  * @return ConsoleOptionParser
  */
 public static function buildFromArray($spec)
 {
     $parser = new ConsoleOptionParser($spec['command']);
     if (!empty($spec['arguments'])) {
         $parser->addArguments($spec['arguments']);
     }
     if (!empty($spec['options'])) {
         $parser->addOptions($spec['options']);
     }
     if (!empty($spec['subcommands'])) {
         $parser->addSubcommands($spec['subcommands']);
     }
     if (!empty($spec['description'])) {
         $parser->description($spec['description']);
     }
     if (!empty($spec['epilog'])) {
         $parser->epilog($spec['epilog']);
     }
     return $parser;
 }