public function testInvoke() { $controllers = new Controllers(); $controllers->set('foo', new \stdClass()); $services = new Services(); $services->set('Controllers', $controllers); $this->setServices($services); $rootModel = $this->getMock(ViewModel::CLASS, ['addChild']); $toolbarEvent = new ToolbarEvent($rootModel); $model = new ViewModel(); $listener = new ControllersListener(); $listener->setModel($model); $rootModel->expects($this->once())->method('addChild')->with($this->identicalTo($model)); $listener($toolbarEvent); $this->assertTrue(isset($model['controllers'])); $items = $model['controllers']; $this->assertInternalType('array', $items); $this->assertSame(1, count($items)); $this->assertArrayHasKey('foo', $items); }
public function testInvokeSpecifiedActionAsIndexIfActionIsNotProvided() { $controller = new FakeController(); $controllers = new Controllers(); $controllers->set('FakeController', $controller); $events = $this->getMock(Events::CLASS, ['trigger']); $plugin = new Forward(); $plugin->setControllers($controllers); $plugin->setEvents($events); $events->expects($this->once())->method('trigger')->with($this->callback(function ($event) { if (!$event instanceof DispatchEvent) { return false; } if ('index' !== $event->getParam('action')) { return false; } return true; })); $plugin('FakeController'); }
public function testExteptionClassWhenControllerNotFound() { $controllers = new Controllers(); $this->setExpectedException(ControllerNotFoundException::CLASS); $controllers->get('foo'); }