Exemplo n.º 1
0
 public function getOptionParser()
 {
     $parser = new ConsoleOptionParser($this->name);
     $parser->description(__('RADIUSdesk console for various tasks'));
     $parser->addOption('ping', array('help' => 'Do a ping monitor test', 'boolean' => true));
     $parser->addOption('heartbeat', array('help' => 'Do a heartbeat monitor test', 'boolean' => true));
     $parser->addArgument('action', array('help' => 'The action to do', 'required' => true, 'choices' => array('mon', 'restart_check', 'debug_check', 'auto_close')));
     $parser->epilog('Have alot of fun....');
     return $parser;
 }
 /**
  * Test xml help as object
  *
  * @return void
  */
 public function testXmlHelpAsObject()
 {
     $parser = new ConsoleOptionParser('mycommand', false);
     $parser->addOption('test', array('help' => 'A test option.'))->addArgument('model', array('help' => 'The model to make.', 'required' => true))->addArgument('other_longer', array('help' => 'Another argument.'));
     $formatter = new HelpFormatter($parser);
     $result = $formatter->xml(false);
     $this->assertInstanceOf('SimpleXmlElement', $result);
 }
 /**
  * test that parse() takes a subcommand argument, and that the subcommand parser
  * is used.
  *
  * @return void
  */
 public function testParsingWithSubParser()
 {
     $parser = new ConsoleOptionParser('test', FALSE);
     $parser->addOption('primary')->addArgument('one', array('required' => TRUE, 'choices' => array('a', 'b')))->addArgument('two', array('required' => TRUE))->addSubcommand('sub', array('parser' => array('options' => array('secondary' => array('boolean' => TRUE), 'fourth' => array('help' => 'fourth option')), 'arguments' => array('sub_arg' => array('choices' => array('c', 'd'))))));
     $result = $parser->parse(array('--secondary', '--fourth', '4', 'c'), 'sub');
     $expected = array(array('secondary' => TRUE, 'fourth' => '4', 'help' => FALSE, 'verbose' => FALSE, 'quiet' => FALSE), array('c'));
     $this->assertEquals($expected, $result, 'Sub parser did not parse request.');
 }