예제 #1
0
 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());
 }
예제 #2
0
 /**
  * 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;
 }