Skip to content

Commit 471bf6c

Browse files
committed
Split events methods
1 parent 6d3a348 commit 471bf6c

File tree

2 files changed

+87
-77
lines changed

2 files changed

+87
-77
lines changed

src/Codeception/Module/Laravel.php

Lines changed: 2 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Codeception\Module\Laravel\InteractsWithConsole;
1616
use Codeception\Module\Laravel\InteractsWithContainer;
1717
use Codeception\Module\Laravel\InteractsWithEloquent;
18+
use Codeception\Module\Laravel\InteractsWithEvents;
1819
use Codeception\Subscriber\ErrorHandler;
1920
use Codeception\TestInterface;
2021
use Codeception\Util\ReflectionHelper;
@@ -130,6 +131,7 @@ class Laravel extends Framework implements ActiveRecord, PartedModule
130131
use InteractsWithConsole;
131132
use InteractsWithContainer;
132133
use InteractsWithEloquent;
134+
use InteractsWithEvents;
133135

134136
/**
135137
* @var Application
@@ -330,83 +332,6 @@ public function disableMiddleware()
330332
$this->client->disableMiddleware();
331333
}
332334

333-
/**
334-
* Disable events for the next requests.
335-
* This method does not disable model events.
336-
* To disable model events you have to use the disableModelEvents() method.
337-
*
338-
* ```php
339-
* <?php
340-
* $I->disableEvents();
341-
* ```
342-
*/
343-
public function disableEvents(): void
344-
{
345-
$this->client->disableEvents();
346-
}
347-
348-
/**
349-
* Disable model events for the next requests.
350-
*
351-
* ```php
352-
* <?php
353-
* $I->disableModelEvents();
354-
* ```
355-
*/
356-
public function disableModelEvents(): void
357-
{
358-
$this->client->disableModelEvents();
359-
}
360-
361-
/**
362-
* Make sure events fired during the test.
363-
*
364-
* ```php
365-
* <?php
366-
* $I->seeEventTriggered('App\MyEvent');
367-
* $I->seeEventTriggered(new App\Events\MyEvent());
368-
* $I->seeEventTriggered(['App\MyEvent', 'App\MyOtherEvent']);
369-
* ```
370-
* @param string|object|string[] $expected
371-
*/
372-
public function seeEventTriggered($expected): void
373-
{
374-
$expected = is_array($expected) ? $expected : [$expected];
375-
376-
foreach ($expected as $expectedEvent) {
377-
if (! $this->client->eventTriggered($expectedEvent)) {
378-
$expectedEvent = is_object($expectedEvent) ? get_class($expectedEvent) : $expectedEvent;
379-
380-
$this->fail("The '$expectedEvent' event did not trigger");
381-
}
382-
}
383-
}
384-
385-
/**
386-
* Make sure events did not fire during the test.
387-
*
388-
* ``` php
389-
* <?php
390-
* $I->dontSeeEventTriggered('App\MyEvent');
391-
* $I->dontSeeEventTriggered(new App\Events\MyEvent());
392-
* $I->dontSeeEventTriggered(['App\MyEvent', 'App\MyOtherEvent']);
393-
* ```
394-
* @param string|object|string[] $expected
395-
*/
396-
public function dontSeeEventTriggered($expected): void
397-
{
398-
$expected = is_array($expected) ? $expected : [$expected];
399-
400-
foreach ($expected as $expectedEvent) {
401-
$triggered = $this->client->eventTriggered($expectedEvent);
402-
if ($triggered) {
403-
$expectedEvent = is_object($expectedEvent) ? get_class($expectedEvent) : $expectedEvent;
404-
405-
$this->fail("The '$expectedEvent' event triggered");
406-
}
407-
}
408-
}
409-
410335
/**
411336
* Opens web page using route name and parameters.
412337
*
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Codeception\Module\Laravel;
6+
7+
trait InteractsWithEvents
8+
{
9+
/**
10+
* Disable events for the next requests.
11+
* This method does not disable model events.
12+
* To disable model events you have to use the disableModelEvents() method.
13+
*
14+
* ```php
15+
* <?php
16+
* $I->disableEvents();
17+
* ```
18+
*/
19+
public function disableEvents(): void
20+
{
21+
$this->client->disableEvents();
22+
}
23+
24+
/**
25+
* Disable model events for the next requests.
26+
*
27+
* ```php
28+
* <?php
29+
* $I->disableModelEvents();
30+
* ```
31+
*/
32+
public function disableModelEvents(): void
33+
{
34+
$this->client->disableModelEvents();
35+
}
36+
37+
/**
38+
* Make sure events did not fire during the test.
39+
*
40+
* ``` php
41+
* <?php
42+
* $I->dontSeeEventTriggered('App\MyEvent');
43+
* $I->dontSeeEventTriggered(new App\Events\MyEvent());
44+
* $I->dontSeeEventTriggered(['App\MyEvent', 'App\MyOtherEvent']);
45+
* ```
46+
* @param string|object|string[] $expected
47+
*/
48+
public function dontSeeEventTriggered($expected): void
49+
{
50+
$expected = is_array($expected) ? $expected : [$expected];
51+
52+
foreach ($expected as $expectedEvent) {
53+
$triggered = $this->client->eventTriggered($expectedEvent);
54+
if ($triggered) {
55+
$expectedEvent = is_object($expectedEvent) ? get_class($expectedEvent) : $expectedEvent;
56+
57+
$this->fail("The '$expectedEvent' event triggered");
58+
}
59+
}
60+
}
61+
62+
/**
63+
* Make sure events fired during the test.
64+
*
65+
* ```php
66+
* <?php
67+
* $I->seeEventTriggered('App\MyEvent');
68+
* $I->seeEventTriggered(new App\Events\MyEvent());
69+
* $I->seeEventTriggered(['App\MyEvent', 'App\MyOtherEvent']);
70+
* ```
71+
* @param string|object|string[] $expected
72+
*/
73+
public function seeEventTriggered($expected): void
74+
{
75+
$expected = is_array($expected) ? $expected : [$expected];
76+
77+
foreach ($expected as $expectedEvent) {
78+
if (! $this->client->eventTriggered($expectedEvent)) {
79+
$expectedEvent = is_object($expectedEvent) ? get_class($expectedEvent) : $expectedEvent;
80+
81+
$this->fail("The '$expectedEvent' event did not trigger");
82+
}
83+
}
84+
}
85+
}

0 commit comments

Comments
 (0)