@@ -46,7 +46,7 @@ public function dontSeeOrphanEvent(array|object|string $expected = null): void
46
46
}
47
47
48
48
/**
49
- * Verifies that one or more event listeners were not called during the test.
49
+ * Verifies that one or more events were not dispatched during the test.
50
50
*
51
51
* ```php
52
52
* <?php
@@ -57,7 +57,7 @@ public function dontSeeOrphanEvent(array|object|string $expected = null): void
57
57
*
58
58
* @param object|string|string[] $expected
59
59
*/
60
- public function dontSeeEventTriggered (array |object |string $ expected ): void
60
+ public function dontSeeEvent (array |object |string $ expected ): void
61
61
{
62
62
$ eventCollector = $ this ->grabEventCollector (__FUNCTION__ );
63
63
@@ -68,6 +68,47 @@ public function dontSeeEventTriggered(array|object|string $expected): void
68
68
$ this ->assertEventNotTriggered ($ data , $ expected );
69
69
}
70
70
71
+ /**
72
+ * Verifies that one or more event listeners were not called during the test.
73
+ *
74
+ * ```php
75
+ * <?php
76
+ * $I->dontSeeEventTriggered('App\MyEventSubscriber');
77
+ * $I->dontSeeEventTriggered(new App\Events\MyEventSubscriber());
78
+ * $I->dontSeeEventTriggered(['App\MyEventSubscriber', 'App\MyOtherEventSubscriber']);
79
+ * ```
80
+ *
81
+ * @param object|string|string[] $expected
82
+ * @deprecated Use `dontSeeEventListenerCalled` instead.
83
+ */
84
+ public function dontSeeEventTriggered (array |object |string $ expected ): void
85
+ {
86
+ $ this ->dontSeeEventListenerCalled ($ expected );
87
+ }
88
+
89
+ /**
90
+ * Verifies that one or more event listeners were not called during the test.
91
+ *
92
+ * ```php
93
+ * <?php
94
+ * $I->dontSeeEventListenerCalled('App\MyEventSubscriber');
95
+ * $I->dontSeeEventListenerCalled(new App\Events\MyEventSubscriber());
96
+ * $I->dontSeeEventListenerCalled(['App\MyEventSubscriber', 'App\MyOtherEventSubscriber']);
97
+ * ```
98
+ *
99
+ * @param object|string|string[] $expected
100
+ */
101
+ public function dontSeeEventListenerCalled (array |object |string $ expected ): void
102
+ {
103
+ $ eventCollector = $ this ->grabEventCollector (__FUNCTION__ );
104
+
105
+ /** @var Data $data */
106
+ $ data = $ eventCollector ->getCalledListeners ();
107
+ $ expected = is_array ($ expected ) ? $ expected : [$ expected ];
108
+
109
+ $ this ->assertListenerNotCalled ($ data , $ expected );
110
+ }
111
+
71
112
/**
72
113
* Verifies that one or more orphan events were dispatched during the test.
73
114
*
@@ -95,27 +136,68 @@ public function seeOrphanEvent(array|object|string $expected): void
95
136
$ this ->assertEventTriggered ($ data , $ expected );
96
137
}
97
138
139
+ /**
140
+ * Verifies that one or more events were dispatched during the test.
141
+ *
142
+ * ```php
143
+ * <?php
144
+ * $I->seeEvent('App\MyEvent');
145
+ * $I->seeEvent(new App\Events\MyEvent());
146
+ * $I->seeEvent(['App\MyEvent', 'App\MyOtherEvent']);
147
+ * ```
148
+ *
149
+ * @param object|string|string[] $expected
150
+ */
151
+ public function seeEvent (array |object |string $ expected ): void
152
+ {
153
+ $ eventCollector = $ this ->grabEventCollector (__FUNCTION__ );
154
+
155
+ /** @var Data $data */
156
+ $ data = $ eventCollector ->getCalledListeners ();
157
+ $ expected = is_array ($ expected ) ? $ expected : [$ expected ];
158
+
159
+ $ this ->assertEventTriggered ($ data , $ expected );
160
+ }
161
+
98
162
/**
99
163
* Verifies that one or more event listeners were called during the test.
100
164
*
101
165
* ```php
102
166
* <?php
103
- * $I->seeEventTriggered('App\MyEvent ');
104
- * $I->seeEventTriggered(new App\Events\MyEvent ());
105
- * $I->seeEventTriggered(['App\MyEvent ', 'App\MyOtherEvent ']);
167
+ * $I->seeEventTriggered('App\MyEventSubscriber ');
168
+ * $I->seeEventTriggered(new App\Events\MyEventSubscriber ());
169
+ * $I->seeEventTriggered(['App\MyEventSubscriber ', 'App\MyOtherEventSubscriber ']);
106
170
* ```
107
171
*
108
172
* @param object|string|string[] $expected
173
+ * @deprecated Use `seeEventListenerCalled` instead.
109
174
*/
110
175
public function seeEventTriggered (array |object |string $ expected ): void
176
+ {
177
+ $ this ->seeEventListenerCalled ($ expected );
178
+ }
179
+
180
+ /**
181
+ * Verifies that one or more event listeners were called during the test.
182
+ *
183
+ * ```php
184
+ * <?php
185
+ * $I->seeEventListenerCalled('App\MyEventSubscriber');
186
+ * $I->seeEventListenerCalled(new App\Events\MyEventSubscriber());
187
+ * $I->seeEventListenerCalled(['App\MyEventSubscriber', 'App\MyOtherEventSubscriber']);
188
+ * ```
189
+ *
190
+ * @param object|string|string[] $expected
191
+ */
192
+ public function seeEventListenerCalled (array |object |string $ expected ): void
111
193
{
112
194
$ eventCollector = $ this ->grabEventCollector (__FUNCTION__ );
113
195
114
196
/** @var Data $data */
115
197
$ data = $ eventCollector ->getCalledListeners ();
116
198
$ expected = is_array ($ expected ) ? $ expected : [$ expected ];
117
199
118
- $ this ->assertEventTriggered ($ data , $ expected );
200
+ $ this ->assertListenerCalled ($ data , $ expected );
119
201
}
120
202
121
203
protected function assertEventNotTriggered (Data $ data , array $ expected ): void
@@ -131,6 +213,19 @@ protected function assertEventNotTriggered(Data $data, array $expected): void
131
213
}
132
214
}
133
215
216
+ protected function assertListenerNotCalled (Data $ data , array $ expected ): void
217
+ {
218
+ $ actual = $ data ->getValue (true );
219
+
220
+ foreach ($ expected as $ expectedListener ) {
221
+ $ expectedListener = is_object ($ expectedListener ) ? $ expectedListener ::class : $ expectedListener ;
222
+ $ this ->assertFalse (
223
+ $ this ->listenerWasCalled ($ actual , (string )$ expectedListener ),
224
+ "The ' {$ expectedListener }' listener was called "
225
+ );
226
+ }
227
+ }
228
+
134
229
protected function assertEventTriggered (Data $ data , array $ expected ): void
135
230
{
136
231
if ($ data ->count () === 0 ) {
@@ -148,26 +243,53 @@ protected function assertEventTriggered(Data $data, array $expected): void
148
243
}
149
244
}
150
245
151
- protected function eventWasTriggered ( array $ actual , string $ expectedEvent ): bool
246
+ protected function assertListenerCalled ( Data $ data , array $ expected ): void
152
247
{
153
- $ triggered = false ;
248
+ if ($ data ->count () === 0 ) {
249
+ $ this ->fail ('No listener was called ' );
250
+ }
154
251
252
+ $ actual = $ data ->getValue (true );
253
+
254
+ foreach ($ expected as $ expectedListener ) {
255
+ $ expectedListener = is_object ($ expectedListener ) ? $ expectedListener ::class : $ expectedListener ;
256
+ $ this ->assertTrue (
257
+ $ this ->listenerWasCalled ($ actual , (string ) $ expectedListener ),
258
+ "The ' {$ expectedListener }' listener was not called "
259
+ );
260
+ }
261
+ }
262
+
263
+ protected function eventWasTriggered (array $ actual , string $ expectedEvent ): bool
264
+ {
155
265
foreach ($ actual as $ actualEvent ) {
156
266
if (is_array ($ actualEvent )) { // Called Listeners
157
- if (str_starts_with ( $ actualEvent ['pretty ' ], $ expectedEvent) ) {
158
- $ triggered = true ;
267
+ if ($ actualEvent ['event ' ] === $ expectedEvent ) {
268
+ return true ;
159
269
}
160
270
} else { // Orphan Events
161
271
if ($ actualEvent === $ expectedEvent ) {
162
- $ triggered = true ;
272
+ return true ;
163
273
}
164
274
}
165
275
}
166
- return $ triggered ;
276
+
277
+ return false ;
278
+ }
279
+
280
+ protected function listenerWasCalled (array $ actual , string $ expectedListener ): bool
281
+ {
282
+ foreach ($ actual as $ actualEvent ) {
283
+ if (str_starts_with ($ actualEvent ['pretty ' ], $ expectedListener )) {
284
+ return true ;
285
+ }
286
+ }
287
+
288
+ return false ;
167
289
}
168
290
169
291
protected function grabEventCollector (string $ function ): EventDataCollector
170
292
{
171
293
return $ this ->grabCollector ('events ' , $ function );
172
294
}
173
- }
295
+ }
0 commit comments