6
6
7
7
use Behat \Behat \Context \Context ;
8
8
use Behat \Gherkin \Node \PyStringNode ;
9
+ use Behat \Hook \AfterFeature ;
10
+ use Behat \Hook \AfterScenario ;
11
+ use Behat \Hook \BeforeFeature ;
9
12
use Behat \Hook \BeforeScenario ;
10
13
use Exception ;
11
14
use Symfony \Component \DependencyInjection \ContainerInterface ;
12
15
use Symfony \Component \Messenger \Transport \InMemory \InMemoryTransport ;
13
16
use Symfony \Component \Messenger \Transport \Sync \SyncTransport ;
14
17
use Symfony \Component \Serializer \Normalizer \NormalizerInterface ;
18
+ use Zenstruck \Messenger \Test \Bus \TestBus ;
19
+ use Zenstruck \Messenger \Test \InteractsWithMessenger ;
20
+ use Zenstruck \Messenger \Test \Transport \TestTransport ;
15
21
16
22
class MessengerContext implements Context
17
23
{
@@ -29,14 +35,37 @@ public function __construct(
29
35
$ this ->transportRetriever = $ transportRetriever ;
30
36
}
31
37
38
+ #[BeforeFeature]
39
+ public static function startTrackMessages (): void
40
+ {
41
+ if (class_exists (TestTransport::class)) {
42
+ TestTransport::resetAll ();
43
+ TestTransport::enableMessagesCollection ();
44
+ TestTransport::disableResetOnKernelShutdown ();
45
+ TestBus::enableMessagesCollection ();
46
+ }
47
+ }
48
+
49
+ #[AfterFeature]
50
+ public static function stopTrackMessages (): void
51
+ {
52
+ if (class_exists (TestTransport::class)) {
53
+ TestTransport::resetAll ();
54
+ }
55
+ }
56
+
32
57
#[BeforeScenario]
33
58
public function clearMessenger (): void
34
59
{
35
- $ transports = $ this ->transportRetriever ->getAllTransports ();
36
-
37
- foreach ($ transports as $ transport ) {
38
- if ($ transport instanceof InMemoryTransport) {
39
- $ transport ->reset ();
60
+ if (class_exists (TestTransport::class)) {
61
+ TestTransport::resetAll ();
62
+ } else {
63
+ $ transports = $ this ->transportRetriever ->getAllTransports ();
64
+
65
+ foreach ($ transports as $ transport ) {
66
+ if ($ transport instanceof InMemoryTransport) {
67
+ $ transport ->reset ();
68
+ }
40
69
}
41
70
}
42
71
}
0 commit comments