public function __construct($name = null, array $data = array(), $dataName = '') { $this->listener = function () { $this->invoked = true; }; $dispatcher = new EventDispatcher(); $dispatcher->addListener('created', $this->listener); $this->dispatcher = new ImmutableEventDispatcher($dispatcher); parent::__construct($name, $data, $dataName); }
public function testPriorityDispatch() { $this->clear(); $invoked = array(); $listener1 = function () use(&$invoked) { $invoked[] = '1'; }; $listener2 = function () use(&$invoked) { $invoked[] = '2'; }; $listener3 = function () use(&$invoked) { $invoked[] = '3'; }; $this->dispatcher->addListener('create', $listener1); $this->dispatcher->addListener('create', $listener2, 1); $this->addListener('create', $listener3, 10); $this->dispatcher->addSubscriber($this); $this->dispatcher->fireEvent('create'); $expected = array('3', '2', '1'); $this->assertSame($expected, $invoked); }