Example #1
0
 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());
 }