public function append() { if ($this->controllerGenerator) { $controllerPath = $this->controllerGenerator->getControllerPath(); $controllerContents = $this->controllerGenerator->getControllerContents(); $actionContents = $this->actionGenerator->templateContents(); $controllerContents = preg_replace('/}\\s*$/', $actionContents . PHP_EOL . '}' . PHP_EOL, $controllerContents); file_put_contents($controllerPath, $controllerContents); } if ($this->viewGenerator) { file_put_contents(Path::join($this->viewGenerator->getViewPath(), $this->actionGenerator->getActionViewFile()), PHP_EOL); } return true; }
/** * @test */ public function shouldAppendActionWhenControllerHasActions() { //given $controllerStub = '<?php namespace \\Application\\Controller; use Ouzo\\Controller; class UsersController extends Controller { public function index() { echo "some actions"; $this->view->render(); } }'; file_put_contents($this->controllerPath, $controllerStub); $controllerGenerator = new ControllerGenerator('users', $this->controllerPath); //when $appendAction = $controllerGenerator->appendAction(new ActionGenerator('save')); //then $this->assertTrue($appendAction); Assert::thatString($controllerGenerator->getControllerContents())->contains('public function index()')->contains('echo "some actions";')->contains('public function save()'); }