The value is converted to the type defined by the argument format.
public function testRenderCommandJson() { $args = new Args($this->helpCommand->getArgsFormat()); $args->setArgument('command', 'the-command'); $status = $this->handler->handle($args, $this->io, $this->command); $this->assertStringStartsWith('{"name":"the-command",', $this->io->fetchOutput()); $this->assertSame(0, $status); }
public function testRenderCommandXml() { $args = new Args($this->helpCommand->getArgsFormat()); $args->setArgument('command', 'the-command'); $status = $this->handler->handle($args, $this->io, $this->command); $expected = <<<'EOF' <?xml version="1.0" encoding="UTF-8"?> <command id="the-command" name="the-command"> EOF; $this->assertStringStartsWith($expected, $this->io->fetchOutput()); $this->assertSame(0, $status); }
public function testRenderCommandText() { $args = new Args($this->helpCommand->getArgsFormat()); $args->setArgument('command', 'the-command'); $status = $this->handler->handle($args, $this->io, $this->command); $expected = <<<'EOF' USAGE console the-command GLOBAL OPTIONS EOF; $this->assertStringStartsWith($expected, $this->io->fetchOutput()); $this->assertSame(0, $status); }
/** * Creates the arguments from the current class state. * * @param ArgsFormat $format The format. * @param RawArgs $rawArgs The raw arguments. * * @return Args The created console arguments. */ private function createArgs(ArgsFormat $format, RawArgs $rawArgs) { $args = new Args($format, $rawArgs); foreach ($this->arguments as $name => $value) { // Filter command names if ($format->hasArgument($name)) { $args->setArgument($name, $value); } } foreach ($this->options as $name => $value) { // Filter command options if ($format->hasOption($name)) { $args->setOption($name, $value); } } return $args; }
/** * {@inheritdoc} */ public function setArgument($name, $value) { if ($this->args) { $this->args->setArgument($name, $value); } }
public function testIsArgumentSet() { $format = ArgsFormat::build()->addArgument(new Argument('argument1'))->addArgument(new Argument('argument2'))->getFormat(); $args = new Args($format); $this->assertFalse($args->isArgumentSet('argument1')); $this->assertFalse($args->isArgumentSet('argument2')); $this->assertFalse($args->isArgumentSet('foo')); $args->setArgument('argument1', 'value1'); $args->setArgument('argument2', 'value2'); $this->assertTrue($args->isArgumentSet('argument1')); $this->assertTrue($args->isArgumentSet('argument2')); $this->assertFalse($args->isArgumentSet('foo')); }