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);
 }