Skip to content

Commit dbf341b

Browse files
authored
Refactor event assertions (#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)