Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ControllerGenerator extends Generator
- {
- // ...
- public function generate(BundleInterface $bundle, $controller, array $actions = array())
- {
- // ...
- }
- }
- class GenerateControllerCommand extends ContainerAwareCommand
- {
- private $generator;
- /**
- * @see Command
- */
- public function configure()
- {
- // ...
- }
- public function execute(InputInterface $input, OutputInterface $output)
- {
- // ...
- $generator = $this->generator;
- $generator->generate($bundle, $controller);
- // ...
- }
- protected function getGenerator()
- {
- if (null === $this->generator) {
- $this->generator = new ControllerGenerator($this->getContainer()->get('filesystem'), __DIR__.'/../Resources/skeleton/bundle');
- }
- return $this->generator;
- }
- public function setGenerator(ControllerGenerator $generator)
- {
- $this->generator = $generator;
- }
- }
- class GenerateControllerCommandTest extends GenerateCommandTest
- {
- public function testNonInteractiveCommand()
- {
- $bundle = 'FooBarBundle';
- $controller = 'PostController';
- $input = array(
- 'command' => 'generate:controller',
- '--bundle' => $bundle,
- '--controller' => $controller,
- );
- $application = $this->getApplication();
- $commandTester = $this->getCommandTester($input);
- $generator = $this->getGenerator();
- $generator
- ->expects($this->once())
- ->method('generate')
- ->with($this->getContainer()->get('kernel')->getBundle($bundle), $controller)
- ;
- $commandTester->execute($input, array('interactive' => false));
- }
- protected function getCommandTester($input = '')
- {
- return new CommandTester($this->getCommand($input));
- }
- protected function getCommand($input = '')
- {
- return $this->getApplication($input)->find('generate:controller');
- }
- protected function getApplication($input = '')
- {
- $application = new Application();
- $command = new GenerateControllerCommand();
- $command->setContainer($this->getContainer());
- $command->setHelperSet($this->getHelperSet($input));
- $command->setGenerator($this->getGenerator());
- $application->add($command);
- return $application;
- }
- protected function getGenerator()
- {
- // get a noop generator
- return $this
- ->getMockBuilder('SensioBundleGeneratorBundleGeneratorControllerGenerator')
- ->disableOriginalConstructor()
- ->setMethods(array('generate'))
- ->getMock()
- ;
- }
- }
- $ phpunit TestsCommandGenerateControllerCommandTest
- PHPUnit 3.7.0 by Sebastian Bergmann.
- Configuration read from E:Wouterwebwampwwwwjsnipvendorsensiogenerator-bundleSensioBundleGeneratorBundlephpunit.xml.dist
- F
- Time: 2 seconds, Memory: 7.25Mb
- There was 1 failure:
- 1) SensioBundleGeneratorBundleTestsCommandGenerateControllerCommandTest::testNonInteractiveCommand
- Expectation failed for method name is equal to <string:generate> when invoked 1 time(s).
- Method was expected to be called 1 times, actually called 0 times.
- E:Wouterwebwampbinphpphp5.3.5PEARphpunit:46
- FAILURES!
- Tests: 1, Assertions: 7, Failures: 1.
- $generator = $this->getGenerator();
- $generator
- ->expects($this->once())
- ->method('generate')
- ->with($this->getContainer()->get('kernel')->getBundle($bundle), $controller)
- ;
- $commandTester->execute($input, array('interactive' => false));
- }
- protected function getApplication() {
- //...
- $command->setGenerator($this->getGenerator());
- //...
- }
Add Comment
Please, Sign In to add comment