/** * Gets the option parser instance and configures it. * By overriding this method you can configure the ConsoleOptionParser before returning it. * * @return ConsoleOptionParser * @link http://book.cakephp.org/2.0/en/console-and-shells.html#Shell::getOptionParser */ public function processOptionParser(ConsoleOptionParser $parser) { return $parser->addOption('process_id', ['help' => 'A process identifier to make locking work with Supervisor']); }
/** * Tests merge() * * @return void */ public function testMerge() { $parser = new ConsoleOptionParser('test'); $parser->addOption('test', ['short' => 't', 'boolean' => true])->addArgument('one', ['required' => true, 'choices' => ['a', 'b']])->addArgument('two', ['required' => true]); $parserTwo = new ConsoleOptionParser('test'); $parserTwo->addOption('file', ['short' => 'f', 'boolean' => true])->addOption('output', ['short' => 'o', 'boolean' => true])->addArgument('one', ['required' => true, 'choices' => ['a', 'b']]); $parser->merge($parserTwo); $result = $parser->toArray(); $options = $result['options']; $this->assertTrue(isset($options['quiet'])); $this->assertTrue(isset($options['test'])); $this->assertTrue(isset($options['file'])); $this->assertTrue(isset($options['output'])); $this->assertEquals(2, count($result['arguments'])); $this->assertEquals(6, count($result['options'])); }
/** * Test xml help as object * * @return void */ public function testXmlHelpAsObject() { $parser = new ConsoleOptionParser('mycommand', false); $parser->addOption('test', ['help' => 'A test option.'])->addArgument('model', ['help' => 'The model to make.', 'required' => true])->addArgument('other_longer', ['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('sub', '--secondary', '--fourth', '4', 'c')); $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.'); }