12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
-
- namespace Doctrine\Tests\Common;
-
- use Doctrine\Common\EventManager;
- use Doctrine\Common\EventArgs;
-
- class EventManagerTest extends \Doctrine\Tests\DoctrineTestCase
- {
- /* Some pseudo events */
- const preFoo = 'preFoo';
- const postFoo = 'postFoo';
- const preBar = 'preBar';
- const postBar = 'postBar';
-
- private $_preFooInvoked = false;
- private $_postFooInvoked = false;
-
- private $_eventManager;
-
- protected function setUp()
- {
- $this->_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');
- }
- }
|