@@ -28,8 +28,8 @@ protected function setUp()
28
28
29
29
public function testDispatchEvent ()
30
30
{
31
- $ this ->container ->set ('foobar ' , $ listener1 = new MyListener ());
32
- $ this ->evm ->addEventListener ('foo ' , 'foobar ' );
31
+ $ this ->container ->set ('lazy ' , $ listener1 = new MyListener ());
32
+ $ this ->evm ->addEventListener ('foo ' , 'lazy ' );
33
33
$ this ->evm ->addEventListener ('foo ' , $ listener2 = new MyListener ());
34
34
35
35
$ this ->evm ->dispatchEvent ('foo ' );
@@ -38,19 +38,69 @@ public function testDispatchEvent()
38
38
$ this ->assertTrue ($ listener2 ->called );
39
39
}
40
40
41
+ public function testAddEventListenerAfterDispatchEvent ()
42
+ {
43
+ $ this ->container ->set ('lazy1 ' , $ listener1 = new MyListener ());
44
+ $ this ->evm ->addEventListener ('foo ' , 'lazy1 ' );
45
+ $ this ->evm ->addEventListener ('foo ' , $ listener2 = new MyListener ());
46
+
47
+ $ this ->evm ->dispatchEvent ('foo ' );
48
+
49
+ $ this ->container ->set ('lazy2 ' , $ listener3 = new MyListener ());
50
+ $ this ->evm ->addEventListener ('foo ' , 'lazy2 ' );
51
+ $ this ->evm ->addEventListener ('foo ' , $ listener4 = new MyListener ());
52
+
53
+ $ this ->evm ->dispatchEvent ('foo ' );
54
+
55
+ $ this ->assertTrue ($ listener1 ->called );
56
+ $ this ->assertTrue ($ listener2 ->called );
57
+ $ this ->assertTrue ($ listener3 ->called );
58
+ $ this ->assertTrue ($ listener4 ->called );
59
+ }
60
+
61
+ public function testGetListenersForEvent ()
62
+ {
63
+ $ this ->container ->set ('lazy ' , $ listener1 = new MyListener ());
64
+ $ this ->evm ->addEventListener ('foo ' , 'lazy ' );
65
+ $ this ->evm ->addEventListener ('foo ' , $ listener2 = new MyListener ());
66
+
67
+ $ this ->assertSame ([$ listener1 , $ listener2 ], array_values ($ this ->evm ->getListeners ('foo ' )));
68
+ }
69
+
70
+ public function testGetListeners ()
71
+ {
72
+ $ this ->container ->set ('lazy ' , $ listener1 = new MyListener ());
73
+ $ this ->evm ->addEventListener ('foo ' , 'lazy ' );
74
+ $ this ->evm ->addEventListener ('foo ' , $ listener2 = new MyListener ());
75
+
76
+ $ this ->assertSame ([$ listener1 , $ listener2 ], array_values ($ this ->evm ->getListeners ()['foo ' ]));
77
+ }
78
+
41
79
public function testRemoveEventListener ()
42
80
{
43
- $ this ->evm ->addEventListener ('foo ' , 'bar ' );
44
- $ this ->evm ->addEventListener ('foo ' , $ listener = new MyListener ());
81
+ $ this ->container ->set ('lazy ' , $ listener1 = new MyListener ());
82
+ $ this ->evm ->addEventListener ('foo ' , 'lazy ' );
83
+ $ this ->evm ->addEventListener ('foo ' , $ listener2 = new MyListener ());
84
+
85
+ $ this ->evm ->removeEventListener ('foo ' , $ listener2 );
86
+ $ this ->assertSame ([$ listener1 ], array_values ($ this ->evm ->getListeners ('foo ' )));
45
87
46
- $ listeners = ['foo ' => ['_service_bar ' => 'bar ' , spl_object_hash ($ listener ) => $ listener ]];
47
- $ this ->assertSame ($ listeners , $ this ->evm ->getListeners ());
48
- $ this ->assertSame ($ listeners ['foo ' ], $ this ->evm ->getListeners ('foo ' ));
88
+ $ this ->evm ->removeEventListener ('foo ' , 'lazy ' );
89
+ $ this ->assertSame ([], $ this ->evm ->getListeners ('foo ' ));
90
+ }
91
+
92
+ public function testRemoveEventListenerAfterDispatchEvent ()
93
+ {
94
+ $ this ->container ->set ('lazy ' , $ listener1 = new MyListener ());
95
+ $ this ->evm ->addEventListener ('foo ' , 'lazy ' );
96
+ $ this ->evm ->addEventListener ('foo ' , $ listener2 = new MyListener ());
97
+
98
+ $ this ->evm ->dispatchEvent ('foo ' );
49
99
50
- $ this ->evm ->removeEventListener ('foo ' , $ listener );
51
- $ this ->assertSame ([' _service_bar ' => ' bar ' ], $ this ->evm ->getListeners ('foo ' ));
100
+ $ this ->evm ->removeEventListener ('foo ' , $ listener2 );
101
+ $ this ->assertSame ([$ listener1 ], array_values ( $ this ->evm ->getListeners ('foo ' ) ));
52
102
53
- $ this ->evm ->removeEventListener ('foo ' , 'bar ' );
103
+ $ this ->evm ->removeEventListener ('foo ' , 'lazy ' );
54
104
$ this ->assertSame ([], $ this ->evm ->getListeners ('foo ' ));
55
105
}
56
106
}
0 commit comments