Skip to content

Commit dbf341b

Browse files
authored
Refactor event assertions (Codeception#109)
1 parent 7cd6562 commit dbf341b

File tree

1 file changed

+37
-23
lines changed

1 file changed

+37
-23
lines changed

src/Codeception/Module/Symfony/EventsAssertionsTrait.php

Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
trait EventsAssertionsTrait
1515
{
1616
/**
17-
* Make sure events did not fire during the test.
17+
* Verifies that one or more event listeners were not called during the test.
1818
*
1919
* ```php
2020
* <?php
@@ -30,26 +30,14 @@ public function dontSeeEventTriggered($expected): void
3030
$eventCollector = $this->grabEventCollector(__FUNCTION__);
3131

3232
/** @var Data $data */
33-
$data = $eventCollector->getNotCalledListeners();
34-
35-
$actual = $data->getValue(true);
33+
$data = $eventCollector->getCalledListeners();
3634
$expected = is_array($expected) ? $expected : [$expected];
3735

38-
foreach ($expected as $expectedEvent) {
39-
$notTriggered = false;
40-
$expectedEvent = is_object($expectedEvent) ? get_class($expectedEvent) : $expectedEvent;
41-
42-
foreach ($actual as $actualEvent) {
43-
if (strpos($actualEvent['pretty'], (string) $expectedEvent) === 0) {
44-
$notTriggered = true;
45-
}
46-
}
47-
$this->assertTrue($notTriggered, "The '{$expectedEvent}' event triggered");
48-
}
36+
$this->assertEventNotTriggered($data, $expected);
4937
}
5038

5139
/**
52-
* Make sure events fired during the test.
40+
* Verifies that one or more event listeners were called during the test.
5341
*
5442
* ```php
5543
* <?php
@@ -66,25 +54,51 @@ public function seeEventTriggered($expected): void
6654

6755
/** @var Data $data */
6856
$data = $eventCollector->getCalledListeners();
57+
$expected = is_array($expected) ? $expected : [$expected];
58+
59+
$this->assertEventTriggered($data, $expected);
60+
}
6961

62+
protected function assertEventNotTriggered(Data $data, array $expected): void
63+
{
7064
if ($data->count() === 0) {
7165
$this->fail('No event was triggered');
7266
}
7367

7468
$actual = $data->getValue(true);
75-
$expected = is_array($expected) ? $expected : [$expected];
7669

7770
foreach ($expected as $expectedEvent) {
78-
$triggered = false;
7971
$expectedEvent = is_object($expectedEvent) ? get_class($expectedEvent) : $expectedEvent;
72+
$this->assertFalse(
73+
$this->eventWasTriggered($actual, (string) $expectedEvent),
74+
"The '{$expectedEvent}' event triggered"
75+
);
76+
}
77+
}
78+
79+
protected function assertEventTriggered(Data $data, array $expected): void
80+
{
81+
$actual = $data->getValue(true);
82+
83+
foreach ($expected as $expectedEvent) {
84+
$expectedEvent = is_object($expectedEvent) ? get_class($expectedEvent) : $expectedEvent;
85+
$this->assertTrue(
86+
$this->eventWasTriggered($actual, (string) $expectedEvent),
87+
"The '{$expectedEvent}' event did not trigger"
88+
);
89+
}
90+
}
91+
92+
protected function eventWasTriggered(array $actual, string $expectedEvent): bool
93+
{
94+
$triggered = false;
8095

81-
foreach ($actual as $actualEvent) {
82-
if (strpos($actualEvent['pretty'], (string) $expectedEvent) === 0) {
83-
$triggered = true;
84-
}
96+
foreach ($actual as $actualEvent) {
97+
if (strpos($actualEvent['pretty'], $expectedEvent) === 0) {
98+
$triggered = true;
8599
}
86-
$this->assertTrue($triggered, "The '{$expectedEvent}' event did not trigger");
87100
}
101+
return $triggered;
88102
}
89103

90104
protected function grabEventCollector(string $function): EventDataCollector

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy