_eventManager = new EventManager; $this->_preFooInvoked = false; $this->_postFooInvoked = false; } public function testInitialState() { $this->assertEquals(array(), $this->_eventManager->getListeners()); $this->assertFalse($this->_eventManager->hasListeners(self::preFoo)); $this->assertFalse($this->_eventManager->hasListeners(self::postFoo)); } public function testAddEventListener() { $this->_eventManager->addEventListener(array('preFoo', 'postFoo'), $this); $this->assertTrue($this->_eventManager->hasListeners(self::preFoo)); $this->assertTrue($this->_eventManager->hasListeners(self::postFoo)); $this->assertEquals(1, count($this->_eventManager->getListeners(self::preFoo))); $this->assertEquals(1, count($this->_eventManager->getListeners(self::postFoo))); $this->assertEquals(2, count($this->_eventManager->getListeners())); } public function testDispatchEvent() { $this->_eventManager->addEventListener(array('preFoo', 'postFoo'), $this); $this->_eventManager->dispatchEvent(self::preFoo); $this->assertTrue($this->_preFooInvoked); $this->assertFalse($this->_postFooInvoked); } public function testRemoveEventListener() { $this->_eventManager->addEventListener(array('preBar'), $this); $this->assertTrue($this->_eventManager->hasListeners(self::preBar)); $this->_eventManager->removeEventListener(array('preBar'), $this); $this->assertFalse($this->_eventManager->hasListeners(self::preBar)); } public function testAddEventSubscriber() { $eventSubscriber = new TestEventSubscriber(); $this->_eventManager->addEventSubscriber($eventSubscriber); $this->assertTrue($this->_eventManager->hasListeners(self::preFoo)); $this->assertTrue($this->_eventManager->hasListeners(self::postFoo)); } /* Listener methods */ public function preFoo(EventArgs $e) { $this->_preFooInvoked = true; } public function postFoo(EventArgs $e) { $this->_postFooInvoked = true; } } class TestEventSubscriber implements \Doctrine\Common\EventSubscriber { public function getSubscribedEvents() { return array('preFoo', 'postFoo'); } }