Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / common / tests / Doctrine / Tests / Common / EventManagerTest.php
1 <?php
2
3 namespace Doctrine\Tests\Common;
4
5 use Doctrine\Common\EventManager;
6 use Doctrine\Common\EventArgs;
7
8 class EventManagerTest extends \Doctrine\Tests\DoctrineTestCase
9 {
10     /* Some pseudo events */
11     const preFoo = 'preFoo';
12     const postFoo = 'postFoo';
13     const preBar = 'preBar';
14     const postBar = 'postBar';
15
16     private $_preFooInvoked = false;
17     private $_postFooInvoked = false;
18
19     private $_eventManager;
20
21     protected function setUp()
22     {
23         $this->_eventManager = new EventManager;
24         $this->_preFooInvoked = false;
25         $this->_postFooInvoked = false;
26     }
27
28     public function testInitialState()
29     {
30         $this->assertEquals(array(), $this->_eventManager->getListeners());
31         $this->assertFalse($this->_eventManager->hasListeners(self::preFoo));
32         $this->assertFalse($this->_eventManager->hasListeners(self::postFoo));
33     }
34
35     public function testAddEventListener()
36     {
37         $this->_eventManager->addEventListener(array('preFoo', 'postFoo'), $this);
38         $this->assertTrue($this->_eventManager->hasListeners(self::preFoo));
39         $this->assertTrue($this->_eventManager->hasListeners(self::postFoo));
40         $this->assertEquals(1, count($this->_eventManager->getListeners(self::preFoo)));
41         $this->assertEquals(1, count($this->_eventManager->getListeners(self::postFoo)));
42         $this->assertEquals(2, count($this->_eventManager->getListeners()));
43     }
44
45     public function testDispatchEvent()
46     {
47         $this->_eventManager->addEventListener(array('preFoo', 'postFoo'), $this);
48         $this->_eventManager->dispatchEvent(self::preFoo);
49         $this->assertTrue($this->_preFooInvoked);
50         $this->assertFalse($this->_postFooInvoked);
51     }
52
53     public function testRemoveEventListener()
54     {
55         $this->_eventManager->addEventListener(array('preBar'), $this);
56         $this->assertTrue($this->_eventManager->hasListeners(self::preBar));
57         $this->_eventManager->removeEventListener(array('preBar'), $this);
58         $this->assertFalse($this->_eventManager->hasListeners(self::preBar));
59     }
60
61     public function testAddEventSubscriber()
62     {
63         $eventSubscriber = new TestEventSubscriber();
64         $this->_eventManager->addEventSubscriber($eventSubscriber);
65         $this->assertTrue($this->_eventManager->hasListeners(self::preFoo));
66         $this->assertTrue($this->_eventManager->hasListeners(self::postFoo));
67     }
68
69     /* Listener methods */
70
71     public function preFoo(EventArgs $e)
72     {
73         $this->_preFooInvoked = true;
74     }
75
76     public function postFoo(EventArgs $e)
77     {
78         $this->_postFooInvoked = true;
79     }
80 }
81
82 class TestEventSubscriber implements \Doctrine\Common\EventSubscriber
83 {
84     public function getSubscribedEvents()
85     {
86         return array('preFoo', 'postFoo');
87     }
88 }