public function setUp() { $this->requestMock = $this->getMock(\Magelight\Http\Request::class, [], [], '', false); \Magelight\Http\Request::forgeMock($this->requestMock); $this->responseMock = $this->getMock(\Magelight\Http\Response::class, [], [], '', false); \Magelight\Http\Response::forgeMock($this->responseMock); $this->appMock = $this->getMock(\Magelight\App::class, [], [], '', false); \Magelight\App::forgeMock($this->appMock); $this->serverMock = $this->getMock(\Magelight\Http\Server::class, [], [], '', false); \Magelight\Http\Server::forgeMock($this->serverMock); $this->controller = \Magelight\Controller::forge(); }
public function testDispatchAction() { $action = ['module' => 'Magelight', 'controller' => 'controller', 'action' => 'index']; $requestMock = $this->getMock(\Magelight\Http\Request::class, [], [], '', false); \Magelight\Http\Request::forgeMock($requestMock); class_alias(\Magelight\Controller::class, '\\Magelight\\Controllers\\Controller'); $controllerMock = $this->getMockForAbstractClass(\Magelight\Controller::class, [], '', false, false, false, ['indexAction', 'init', 'beforeExecute', 'afterExecute']); \Magelight\Controller::forgeMock($controllerMock); $controllerMock->expects($this->once())->method('indexAction'); $controllerMock->expects($this->once())->method('init')->with($action); $controllerMock->expects($this->once())->method('beforeExecute'); $controllerMock->expects($this->once())->method('afterExecute'); $this->eventManagerMock->expects($this->at(0))->method('dispatchEvent')->with('app_dispatch_action', ['action' => $action, 'request' => $requestMock]); $this->eventManagerMock->expects($this->at(1))->method('dispatchEvent')->with('app_controller_init', ['controller' => $controllerMock, 'action' => $action, 'request' => $requestMock]); $this->eventManagerMock->expects($this->at(2))->method('dispatchEvent')->with('app_controller_initialized', ['controller' => $controllerMock, 'action' => $action, 'request' => $requestMock]); $this->eventManagerMock->expects($this->at(3))->method('dispatchEvent')->with('app_controller_executed', ['controller' => $controllerMock, 'action' => $action, 'request' => $requestMock]); $this->app->dispatchAction($action); $this->assertEquals($action, $this->app->getCurrentAction()); }