14
14
trait EventsAssertionsTrait
15
15
{
16
16
/**
17
- * Verifies that one or more orphan events were not dispatched during the test.
17
+ * Verifies that there were no orphan events during the test.
18
18
*
19
- * An orphan event is an event that is triggered by manually executing the
19
+ * An orphan event is an event that was triggered by manually executing the
20
20
* [`dispatch()`](https://symfony.com/doc/current/components/event_dispatcher.html#dispatch-the-event) method
21
- * of the EventDispatcher, in other words, it is an event that is not handled by any listener.
21
+ * of the EventDispatcher but was not handled by any listener after it was dispatched .
22
22
*
23
23
* ```php
24
24
* <?php
25
- * $I->dontSeeOrphanEventTriggered('App\MyEvent');
26
- * $I->dontSeeOrphanEventTriggered(new App\Events\MyEvent());
27
- * $I->dontSeeOrphanEventTriggered(['App\MyEvent', 'App\MyOtherEvent']);
25
+ * $I->dontSeeOrphanEvent();
26
+ * $I->dontSeeOrphanEvent('App\MyEvent');
27
+ * $I->dontSeeOrphanEvent(new App\Events\MyEvent());
28
+ * $I->dontSeeOrphanEvent(['App\MyEvent', 'App\MyOtherEvent']);
28
29
* ```
29
30
*
30
31
* @param string|object|string[] $expected
31
32
*/
32
- public function dontSeeOrphanEventTriggered ($ expected ): void
33
+ public function dontSeeOrphanEvent ($ expected = null ): void
33
34
{
34
35
$ eventCollector = $ this ->grabEventCollector (__FUNCTION__ );
35
36
36
37
/** @var Data $data */
37
38
$ data = $ eventCollector ->getOrphanedEvents ();
38
39
$ expected = is_array ($ expected ) ? $ expected : [$ expected ];
39
40
40
- $ this ->assertEventNotTriggered ($ data , $ expected );
41
+ if ($ expected === null ) {
42
+ $ this ->assertSame (0 , $ data ->count ());
43
+ } else {
44
+ $ this ->assertEventNotTriggered ($ data , $ expected );
45
+ }
41
46
}
42
47
43
48
/**
@@ -66,20 +71,20 @@ public function dontSeeEventTriggered($expected): void
66
71
/**
67
72
* Verifies that one or more orphan events were dispatched during the test.
68
73
*
69
- * An orphan event is an event that is triggered by manually executing the
74
+ * An orphan event is an event that was triggered by manually executing the
70
75
* [`dispatch()`](https://symfony.com/doc/current/components/event_dispatcher.html#dispatch-the-event) method
71
- * of the EventDispatcher, in other words, it is an event that is not handled by any listener.
76
+ * of the EventDispatcher but was not handled by any listener after it was dispatched .
72
77
*
73
78
* ```php
74
79
* <?php
75
- * $I->seeOrphanEventTriggered ('App\MyEvent');
76
- * $I->seeOrphanEventTriggered (new App\Events\MyEvent());
77
- * $I->seeOrphanEventTriggered (['App\MyEvent', 'App\MyOtherEvent']);
80
+ * $I->seeOrphanEvent ('App\MyEvent');
81
+ * $I->seeOrphanEvent (new App\Events\MyEvent());
82
+ * $I->seeOrphanEvent (['App\MyEvent', 'App\MyOtherEvent']);
78
83
* ```
79
84
*
80
85
* @param string|object|string[] $expected
81
86
*/
82
- public function seeOrphanEventTriggered ($ expected ): void
87
+ public function seeOrphanEvent ($ expected ): void
83
88
{
84
89
$ eventCollector = $ this ->grabEventCollector (__FUNCTION__ );
85
90
@@ -115,10 +120,6 @@ public function seeEventTriggered($expected): void
115
120
116
121
protected function assertEventNotTriggered (Data $ data , array $ expected ): void
117
122
{
118
- if ($ data ->count () === 0 ) {
119
- $ this ->fail ('No event was triggered ' );
120
- }
121
-
122
123
$ actual = $ data ->getValue (true );
123
124
124
125
foreach ($ expected as $ expectedEvent ) {
@@ -132,6 +133,10 @@ protected function assertEventNotTriggered(Data $data, array $expected): void
132
133
133
134
protected function assertEventTriggered (Data $ data , array $ expected ): void
134
135
{
136
+ if ($ data ->count () === 0 ) {
137
+ $ this ->fail ('No event was triggered ' );
138
+ }
139
+
135
140
$ actual = $ data ->getValue (true );
136
141
137
142
foreach ($ expected as $ expectedEvent ) {
@@ -148,8 +153,14 @@ protected function eventWasTriggered(array $actual, string $expectedEvent): bool
148
153
$ triggered = false ;
149
154
150
155
foreach ($ actual as $ actualEvent ) {
151
- if (strpos ($ actualEvent ['pretty ' ], $ expectedEvent ) === 0 ) {
152
- $ triggered = true ;
156
+ if (is_array ($ actualEvent )) { // Called Listeners
157
+ if (strpos ($ actualEvent ['pretty ' ], $ expectedEvent ) === 0 ) {
158
+ $ triggered = true ;
159
+ }
160
+ } else { // Orphan Events
161
+ if ($ actualEvent === $ expectedEvent ) {
162
+ $ triggered = true ;
163
+ }
153
164
}
154
165
}
155
166
return $ triggered ;
0 commit comments