public function testRun() { $command = new \TestCommand(); $application = new Application(); $command->setApplication($application); $tester = new CommandTester($command); try { $tester->execute(array('--bar' => true)); $this->fail('->run() throws a \\InvalidArgumentException when the input does not validate the current InputDefinition'); } catch (\Exception $e) { $this->assertInstanceOf('\\InvalidArgumentException', $e, '->run() throws a \\InvalidArgumentException when the input does not validate the current InputDefinition'); $this->assertEquals('The "--bar" option does not exist.', $e->getMessage(), '->run() throws a \\InvalidArgumentException when the input does not validate the current InputDefinition'); } $this->assertEquals('interact called' . PHP_EOL . 'execute called' . PHP_EOL, $tester->execute(array(), array('interactive' => true)), '->run() calls the interact() method if the input is interactive'); $this->assertEquals('execute called' . PHP_EOL, $tester->execute(array(), array('interactive' => false)), '->run() does not call the interact() method if the input is not interactive'); $command = new Command('foo'); try { $command->run(new StringInput(''), new NullOutput()); $this->fail('->run() throws a \\LogicException if the execute() method has not been overriden and no code has been provided'); } catch (\Exception $e) { $this->assertInstanceOf('\\LogicException', $e, '->run() throws a \\LogicException if the execute() method has not been overriden and no code has been provided'); $this->assertEquals('You must override the execute() method in the concrete command class.', $e->getMessage(), '->run() throws a \\LogicException if the execute() method has not been overriden and no code has been provided'); } }
{ $tester->execute(array('--bar' => true)); $t->fail('->run() throws a \RuntimeException when the input does not validate the current InputDefinition'); } catch (\RuntimeException $e) { $t->pass('->run() throws a \RuntimeException when the input does not validate the current InputDefinition'); } $t->is($tester->execute(array(), array('interactive' => true)), "interact called\nexecute called\n", '->run() calls the interact() method if the input is interactive'); $t->is($tester->execute(array(), array('interactive' => false)), "execute called\n", '->run() does not call the interact() method if the input is not interactive'); $command = new Command('foo'); try { $command->run(new StringInput(''), new NullOutput()); $t->fail('->run() throws a \LogicException if the execute() method has not been overriden and no code has been provided'); } catch (\LogicException $e) { $t->pass('->run() throws a \LogicException if the execute() method has not been overriden and no code has been provided'); } // ->setCode() $t->diag('->setCode()'); $command = new TestCommand(); $command->setApplication($application); $ret = $command->setCode(function (InputInterface $input, OutputInterface $output) { $output->writeln('from the code...'); });
public function testRun() { $command = new \TestCommand(); $application = new Application(); $command->setApplication($application); $tester = new CommandTester($command); try { $tester->execute(array('--bar' => true)); $this->fail('->run() throws a \\RuntimeException when the input does not validate the current InputDefinition'); } catch (\RuntimeException $e) { } $this->assertEquals($tester->execute(array(), array('interactive' => true)), "interact called\nexecute called\n", '->run() calls the interact() method if the input is interactive'); $this->assertEquals($tester->execute(array(), array('interactive' => false)), "execute called\n", '->run() does not call the interact() method if the input is not interactive'); $command = new Command('foo'); try { $command->run(new StringInput(''), new NullOutput()); $this->fail('->run() throws a \\LogicException if the execute() method has not been overriden and no code has been provided'); } catch (\LogicException $e) { } }