public function testRunEventWithWeights() { $event = 'event'; $this->executed = 10; $callback = array($this, 'eventCallbackMethod'); $callback2 = array($this, 'eventCallbackMethodSum'); $callback3 = array($this, 'eventCallbackMethodMultiply'); $callback4 = array($this, 'eventCallbackMethodSubstract'); $this->eventManager->registerEventListener($event, $callback3); $this->eventManager->registerEventListener($event, $callback, 20); $this->eventManager->registerEventListener($event, $callback4, 99); $this->eventManager->registerEventListener($event, $callback2, 10); $this->eventManager->runEvent($event, 7); $this->assertEquals(42, $this->executed); }
public function testTriggerEventWithWeights() { $event = 'event'; $this->executed = 10; $callback1 = array($this, 'eventCallbackMethod'); $callback2 = array($this, 'eventCallbackMethodSum'); $callback3 = array($this, 'eventCallbackMethodMultiply'); $callback4 = array($this, 'eventCallbackMethodSubstract'); $this->eventManager->registerEventListener($event, $callback3); $this->eventManager->registerEventListener($event, $callback1, 20); $this->eventManager->registerEventListener($event, $callback4, 99); $this->eventManager->registerEventListener($event, $callback2, 10); $this->eventManager->triggerEvent($event, 7); // 1: 10 + 7 = 17 // 2: 7 // 3: 7 * 7 = 49 // 4: 49 - 7 = 42 $this->assertEquals(42, $this->executed); }
/** * Register a event listener for an event * @param string $eventName name of the event * @param mixed $callback listener callback * @param int $weight weight of the listener to influence the order of listeners * @return null */ public function registerEventListener($eventName, $callback, $weight = null) { $this->eventManager->registerEventListener($eventName, $callback, $weight); }