Blame view

sources/3rdparty/doctrine/common/tests/Doctrine/Tests/Common/EventManagerTest.php 2.75 KB
31b7f2792   Kload   Upgrade to ownclo...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
  <?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');
      }
  }