@@ -43,7 +43,7 @@ public function dontSeeOrphanEvent(array|object|string $expected = null): void
43
43
}
44
44
45
45
/**
46
- * Verifies that one or more event listeners were not called during the test.
46
+ * Verifies that one or more events were not dispatched during the test.
47
47
*
48
48
* ```php
49
49
* <?php
@@ -55,7 +55,7 @@ public function dontSeeOrphanEvent(array|object|string $expected = null): void
55
55
* @param object|string|string[] $expected
56
56
* @deprecated Use `dontSeeEventListenerIsCalled()` instead.
57
57
*/
58
- public function dontSeeEventTriggered (array |object |string $ expected ): void
58
+ public function dontSeeEvent (array |object |string $ expected ): void
59
59
{
60
60
trigger_error ('dontSeeEventTriggered is deprecated, please use dontSeeEventListenerIsCalled instead ' , E_USER_DEPRECATED );
61
61
$ this ->dontSeeEventListenerIsCalled ($ expected );
@@ -83,6 +83,47 @@ public function dontSeeEventListenerIsCalled(array|object|string $expected): voi
83
83
$ this ->assertEventNotTriggered ($ data , $ expected );
84
84
}
85
85
86
+ /**
87
+ * Verifies that one or more event listeners were not called during the test.
88
+ *
89
+ * ```php
90
+ * <?php
91
+ * $I->dontSeeEventTriggered('App\MyEventSubscriber');
92
+ * $I->dontSeeEventTriggered(new App\Events\MyEventSubscriber());
93
+ * $I->dontSeeEventTriggered(['App\MyEventSubscriber', 'App\MyOtherEventSubscriber']);
94
+ * ```
95
+ *
96
+ * @param object|string|string[] $expected
97
+ * @deprecated Use `dontSeeEventListenerCalled` instead.
98
+ */
99
+ public function dontSeeEventTriggered (array |object |string $ expected ): void
100
+ {
101
+ $ this ->dontSeeEventListenerCalled ($ expected );
102
+ }
103
+
104
+ /**
105
+ * Verifies that one or more event listeners were not called during the test.
106
+ *
107
+ * ```php
108
+ * <?php
109
+ * $I->dontSeeEventListenerCalled('App\MyEventSubscriber');
110
+ * $I->dontSeeEventListenerCalled(new App\Events\MyEventSubscriber());
111
+ * $I->dontSeeEventListenerCalled(['App\MyEventSubscriber', 'App\MyOtherEventSubscriber']);
112
+ * ```
113
+ *
114
+ * @param object|string|string[] $expected
115
+ */
116
+ public function dontSeeEventListenerCalled (array |object |string $ expected ): void
117
+ {
118
+ $ eventCollector = $ this ->grabEventCollector (__FUNCTION__ );
119
+
120
+ /** @var Data $data */
121
+ $ data = $ eventCollector ->getCalledListeners ();
122
+ $ expected = is_array ($ expected ) ? $ expected : [$ expected ];
123
+
124
+ $ this ->assertListenerNotCalled ($ data , $ expected );
125
+ }
126
+
86
127
/**
87
128
* Verifies that one or more orphan events were dispatched during the test.
88
129
*
@@ -110,19 +151,19 @@ public function seeOrphanEvent(array|object|string $expected): void
110
151
}
111
152
112
153
/**
113
- * Verifies that one or more event listeners were called during the test.
154
+ * Verifies that one or more events were dispatched during the test.
114
155
*
115
156
* ```php
116
157
* <?php
117
- * $I->seeEventTriggered ('App\MyEvent');
118
- * $I->seeEventTriggered (new App\Events\MyEvent());
119
- * $I->seeEventTriggered (['App\MyEvent', 'App\MyOtherEvent']);
158
+ * $I->seeEvent ('App\MyEvent');
159
+ * $I->seeEvent (new App\Events\MyEvent());
160
+ * $I->seeEvent (['App\MyEvent', 'App\MyOtherEvent']);
120
161
* ```
121
162
*
122
163
* @param object|string|string[] $expected
123
164
* @deprecated Use `seeEventListenerIsCalled()` instead.
124
165
*/
125
- public function seeEventTriggered (array |object |string $ expected ): void
166
+ public function seeEvent (array |object |string $ expected ): void
126
167
{
127
168
trigger_error ('seeEventTriggered is deprecated, please use seeEventListenerIsCalled instead ' , E_USER_DEPRECATED );
128
169
$ this ->seeEventListenerIsCalled ($ expected );
@@ -150,6 +191,47 @@ public function seeEventListenerIsCalled(array|object|string $expected): void
150
191
$ this ->assertEventTriggered ($ data , $ expected );
151
192
}
152
193
194
+ /**
195
+ * Verifies that one or more event listeners were called during the test.
196
+ *
197
+ * ```php
198
+ * <?php
199
+ * $I->seeEventTriggered('App\MyEventSubscriber');
200
+ * $I->seeEventTriggered(new App\Events\MyEventSubscriber());
201
+ * $I->seeEventTriggered(['App\MyEventSubscriber', 'App\MyOtherEventSubscriber']);
202
+ * ```
203
+ *
204
+ * @param object|string|string[] $expected
205
+ * @deprecated Use `seeEventListenerCalled` instead.
206
+ */
207
+ public function seeEventTriggered (array |object |string $ expected ): void
208
+ {
209
+ $ this ->seeEventListenerCalled ($ expected );
210
+ }
211
+
212
+ /**
213
+ * Verifies that one or more event listeners were called during the test.
214
+ *
215
+ * ```php
216
+ * <?php
217
+ * $I->seeEventListenerCalled('App\MyEventSubscriber');
218
+ * $I->seeEventListenerCalled(new App\Events\MyEventSubscriber());
219
+ * $I->seeEventListenerCalled(['App\MyEventSubscriber', 'App\MyOtherEventSubscriber']);
220
+ * ```
221
+ *
222
+ * @param object|string|string[] $expected
223
+ */
224
+ public function seeEventListenerCalled (array |object |string $ expected ): void
225
+ {
226
+ $ eventCollector = $ this ->grabEventCollector (__FUNCTION__ );
227
+
228
+ /** @var Data $data */
229
+ $ data = $ eventCollector ->getCalledListeners ();
230
+ $ expected = is_array ($ expected ) ? $ expected : [$ expected ];
231
+
232
+ $ this ->assertListenerCalled ($ data , $ expected );
233
+ }
234
+
153
235
protected function assertEventNotTriggered (Data $ data , array $ expected ): void
154
236
{
155
237
$ actual = $ data ->getValue (true );
@@ -163,6 +245,19 @@ protected function assertEventNotTriggered(Data $data, array $expected): void
163
245
}
164
246
}
165
247
248
+ protected function assertListenerNotCalled (Data $ data , array $ expected ): void
249
+ {
250
+ $ actual = $ data ->getValue (true );
251
+
252
+ foreach ($ expected as $ expectedListener ) {
253
+ $ expectedListener = is_object ($ expectedListener ) ? $ expectedListener ::class : $ expectedListener ;
254
+ $ this ->assertFalse (
255
+ $ this ->listenerWasCalled ($ actual , (string )$ expectedListener ),
256
+ "The ' {$ expectedListener }' listener was called "
257
+ );
258
+ }
259
+ }
260
+
166
261
protected function assertEventTriggered (Data $ data , array $ expected ): void
167
262
{
168
263
if ($ data ->count () === 0 ) {
@@ -180,22 +275,49 @@ protected function assertEventTriggered(Data $data, array $expected): void
180
275
}
181
276
}
182
277
183
- protected function eventWasTriggered ( array $ actual , string $ expectedEvent ): bool
278
+ protected function assertListenerCalled ( Data $ data , array $ expected ): void
184
279
{
185
- $ triggered = false ;
280
+ if ($ data ->count () === 0 ) {
281
+ $ this ->fail ('No listener was called ' );
282
+ }
186
283
284
+ $ actual = $ data ->getValue (true );
285
+
286
+ foreach ($ expected as $ expectedListener ) {
287
+ $ expectedListener = is_object ($ expectedListener ) ? $ expectedListener ::class : $ expectedListener ;
288
+ $ this ->assertTrue (
289
+ $ this ->listenerWasCalled ($ actual , (string ) $ expectedListener ),
290
+ "The ' {$ expectedListener }' listener was not called "
291
+ );
292
+ }
293
+ }
294
+
295
+ protected function eventWasTriggered (array $ actual , string $ expectedEvent ): bool
296
+ {
187
297
foreach ($ actual as $ actualEvent ) {
188
298
if (is_array ($ actualEvent )) { // Called Listeners
189
- if (str_starts_with ( $ actualEvent ['pretty ' ], $ expectedEvent) ) {
190
- $ triggered = true ;
299
+ if ($ actualEvent ['event ' ] === $ expectedEvent ) {
300
+ return true ;
191
301
}
192
302
} else { // Orphan Events
193
303
if ($ actualEvent === $ expectedEvent ) {
194
- $ triggered = true ;
304
+ return true ;
195
305
}
196
306
}
197
307
}
198
- return $ triggered ;
308
+
309
+ return false ;
310
+ }
311
+
312
+ protected function listenerWasCalled (array $ actual , string $ expectedListener ): bool
313
+ {
314
+ foreach ($ actual as $ actualEvent ) {
315
+ if (str_starts_with ($ actualEvent ['pretty ' ], $ expectedListener )) {
316
+ return true ;
317
+ }
318
+ }
319
+
320
+ return false ;
199
321
}
200
322
201
323
protected function grabEventCollector (string $ function ): EventDataCollector
0 commit comments