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)
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