/** * Test the triggerEvent method with a previously registered event. * * @return void * * @covers Windwalker\Event\Dispatcher::triggerEvent * @since 1.0 */ public function testTriggerEventRegistered() { $event = new Event('onSomething'); $mockedListener = $this->getMock('Windwalker\\Event\\Test\\Stub\\SomethingListener', array('onSomething')); $mockedListener->expects($this->once())->method('onSomething')->with($event); $this->instance->addEvent($event); $this->instance->addListener($mockedListener); $this->instance->triggerEvent('onSomething'); }
/** * testTriggerEventReference * * @return void */ public function testTriggerEventReference() { $event = new Event('onSomething'); $foo = 'foo'; $args = array('foo' => &$foo); $this->instance->triggerEvent($event, $args); $event->setArgument('foo', 'bar'); $this->assertEquals('bar', $foo); }
/** * triggerEvent * * @param string|Event $event * @param array $args * * @return Event * * @since 2.1 */ public function triggerEvent($event, $args = array()) { $dispatcher = $this->getDispatcher(); if (!$dispatcher instanceof DispatcherInterface) { return null; } $args['record'] = $this; $event = $this->dispatcher->triggerEvent($event, $args); $innerListener = array($this, $event->getName()); if (!$event->isStopped() && is_callable($innerListener)) { call_user_func($innerListener, $event); } return $event; }