public function testTriggerChangeEventOfBaseCapabilities() { $em = $this->_capabilities->getEventManager(); $this->assertInstanceOf('Zend\\EventManager\\EventManager', $em); $event = null; $em->attach('change', function ($eventArg) use(&$event) { $event = $eventArg; }); $this->_baseCapabilities->setMaxTtl($this->_marker, 100); $this->assertInstanceOf('Zend\\EventManager\\Event', $event); $this->assertEquals('change', $event->getName()); $this->assertSame($this->_baseCapabilities, $event->getTarget()); $this->assertEquals(array('maxTtl' => 100), $event->getParams()); }
/** * Get the event manager * * @return EventManager * @throws Exception\MissingDependencyException */ public function getEventManager() { if ($this->eventManager instanceof EventManager) { return $this->eventManager; } if (!class_exists('Zend\\EventManager\\EventManager')) { throw new Exception\MissingDependencyException('Zend\\EventManager\\EventManager not found'); } // create a new event manager object $eventManager = new EventManager(); // trigger change event on change of a base capability if ($this->baseCapabilities && $this->baseCapabilities->hasEventManager()) { $onChange = function ($event) use($eventManager) { $eventManager->trigger('change', $event->getTarget(), $event->getParams()); }; $this->baseCapabilities->getEventManager()->attach('change', $onChange); } // register event manager $this->eventManager = $eventManager; return $this->eventManager; }