/**
  * Display help for this console.
  *
  * @return ConsoleOptionParser
  */
 public function getOptionParser()
 {
     $parser = new ConsoleOptionParser('console');
     $parser->description("This shell clean the cache of your application.")->command("cache.clear")->addOption('all', ['short' => 'a', 'help' => 'Clear all caches', 'boolean' => true])->addSubcommand('all', ['help' => 'Clear all caches']);
     foreach ($this->tasks as $task => $option) {
         $classname = $this->taskClassname($task);
         $parser->addSubcommand($this->taskName($task), ['help' => $this->{$classname}->help(), 'parser' => $this->{$classname}->getOptionParser()]);
     }
     return $parser;
 }
    /**
     * test that help() outputs subcommands.
     *
     * @return void
     */
    public function testXmlHelpSubcommand()
    {
        $parser = new ConsoleOptionParser('mycommand', false);
        $parser->addSubcommand('method', ['help' => 'This is another command'])->addOption('test', ['help' => 'A test option.']);
        $formatter = new HelpFormatter($parser);
        $result = $formatter->xml();
        $expected = <<<xml
<?xml version="1.0"?>
<shell>
<name>mycommand</name>
<description/>
<subcommands>
\t<command name="method" help="This is another command" />
</subcommands>
<options>
\t<option name="--help" short="-h" help="Display this help." boolean="1">
\t\t<default></default>
\t\t<choices></choices>
\t</option>
\t<option name="--test" short="" help="A test option." boolean="0">
\t\t<default></default>
\t\t<choices></choices>
\t</option>
</options>
<arguments/>
<epilog/>
</shell>
xml;
        $this->assertXmlStringNotEqualsXmlString($expected, $result, 'Help does not match');
    }
Exemple #3
0
 /**
  * test that runCommand will call runCommand on the task.
  *
  * @return void
  */
 public function testRunCommandHittingTaskInSubcommand()
 {
     $parser = new ConsoleOptionParser('knife');
     $parser->addSubcommand('slice');
     $io = $this->getMock('Cake\\Console\\ConsoleIo');
     $shell = $this->getMock('Cake\\Console\\Shell', ['hasTask', 'startup', 'getOptionParser'], [], '', false);
     $shell->io($io);
     $task = $this->getMock('Cake\\Console\\Shell', ['main', 'runCommand'], [], '', false);
     $task->io($io);
     $task->expects($this->once())->method('runCommand')->with(['one'], false);
     $shell->expects($this->once())->method('getOptionParser')->will($this->returnValue($parser));
     $shell->expects($this->once())->method('startup');
     $shell->expects($this->any())->method('hasTask')->will($this->returnValue(true));
     $shell->Slice = $task;
     $shell->runCommand(['slice', 'one']);
 }
    /**
     * test that help() with a command param shows the help for a subcommand
     *
     * @return void
     */
    public function testHelpSubcommandHelp()
    {
        $subParser = new ConsoleOptionParser('method', false);
        $subParser->addOption('connection', ['help' => 'Db connection.']);
        $parser = new ConsoleOptionParser('mycommand', false);
        $parser->addSubcommand('method', ['help' => 'This is another command', 'parser' => $subParser])->addOption('test', ['help' => 'A test option.']);
        $result = $parser->help('method');
        $expected = <<<TEXT
<info>Usage:</info>
cake mycommand method [-h] [--connection]

<info>Options:</info>

--help, -h        Display this help.
--connection      Db connection.

TEXT;
        $this->assertTextEquals($expected, $result, 'Help is not correct.');
    }