public function testRenderIgnoreModelWithoutGroupId() { $root = new ViewModel(); $ignored = new ViewModel(); $root->addChild($ignored); $ignored->setGroupId(null); $events = $this->getMock(Events::CLASS, ['trigger']); $view = new View(); $view->setEvents($events); $events->expects($this->atLeastOnce())->method('trigger')->with($this->callback(function ($event) use($ignored) { $this->assertInstanceOf(ViewEvent::CLASS, $event); $model = $event->getContext(); $this->assertInstanceOf(ViewModelInterface::CLASS, $model); if ($model === $ignored) { return false; } return true; })); $view->render($root); }
public function testInvokeDoesNothingIfModuleIsAlreadySpecifiedInViewModel() { $modules = new Modules(); $module = $this->getMock(AbstractModule::CLASS); $modules->set(__NAMESPACE__, $module); $view = new View(); $layout = $view->getLayout(); $layout->setModule('Foo'); $listener = new InjectModuleListener(); $listener->setModules($modules); $listener->setView($view); $event = new SystemEvent(); $model = new ViewModel(); $model->setModule('Bar'); $controller = new FakeController(); $event->setContext($controller); $event->setResult(SystemEvent::DISPATCH, $model); $listener($event); $this->assertSame('Foo', $layout->getModule()); $this->assertSame('Bar', $model->getModule()); }