Exemplo n.º 1
0
 public function testProxiesAllStaticOperationsToEventCollectionInstance()
 {
     $test = new \stdClass();
     $listener = GlobalEventManager::attach('foo.bar', function ($e) use($test) {
         $test->event = $e->getName();
         $test->target = $e->getTarget();
         $test->params = $e->getParams();
         return $test->params;
     });
     $this->assertInstanceOf('Zend\\Stdlib\\CallbackHandler', $listener);
     GlobalEventManager::trigger('foo.bar', $this, array('foo' => 'bar'));
     $this->assertSame($this, $test->target);
     $this->assertEquals('foo.bar', $test->event);
     $this->assertEquals(array('foo' => 'bar'), $test->params);
     $results = GlobalEventManager::triggerUntil('foo.bar', $this, array('baz' => 'bat'), function ($r) {
         return is_array($r);
     });
     $this->assertTrue($results->stopped());
     $this->assertEquals(array('baz' => 'bat'), $test->params);
     $this->assertEquals(array('baz' => 'bat'), $results->last());
     $events = GlobalEventManager::getEvents();
     $this->assertEquals(array('foo.bar'), $events);
     $listeners = GlobalEventManager::getListeners('foo.bar');
     $this->assertEquals(1, count($listeners));
     $this->assertTrue($listeners->contains($listener));
     GlobalEventManager::detach($listener);
     $events = GlobalEventManager::getEvents();
     $this->assertEquals(array(), $events);
     $listener = GlobalEventManager::attach('foo.bar', function ($e) use($test) {
         $test->event = $e->getEvent();
         $test->target = $e->getTarget();
         $test->params = $e->getParams();
     });
     $events = GlobalEventManager::getEvents();
     $this->assertEquals(array('foo.bar'), $events);
     GlobalEventManager::clearListeners('foo.bar');
     $events = GlobalEventManager::getEvents();
     $this->assertEquals(array(), $events);
 }