15
15
use Psr \Container \ContainerInterface ;
16
16
use Symfony \Component \EventDispatcher \EventDispatcher ;
17
17
use Symfony \Component \Messenger \Envelope ;
18
+ use Symfony \Component \Messenger \Event \WorkerMessageHandledEvent ;
18
19
use Symfony \Component \Messenger \Event \WorkerMessageReceivedEvent ;
20
+ use Symfony \Component \Scheduler \Event \PostRunEvent ;
19
21
use Symfony \Component \Scheduler \Event \PreRunEvent ;
20
22
use Symfony \Component \Scheduler \EventListener \DispatchSchedulerEventListener ;
21
23
use Symfony \Component \Scheduler \Generator \MessageContext ;
@@ -33,20 +35,22 @@ public function testDispatchSchedulerEvents()
33
35
34
36
$ schedulerProvider = new SomeScheduleProvider ([$ defaultRecurringMessage ]);
35
37
$ scheduleProviderLocator = $ this ->createMock (ContainerInterface::class);
36
- $ scheduleProviderLocator ->expects ($ this ->once ())->method ('has ' )->willReturn (true );
37
- $ scheduleProviderLocator ->expects ($ this ->once ())->method ('get ' )->willReturn ($ schedulerProvider );
38
+ $ scheduleProviderLocator ->expects ($ this ->any ())->method ('has ' )->willReturn (true );
39
+ $ scheduleProviderLocator ->expects ($ this ->any ())->method ('get ' )->willReturn ($ schedulerProvider );
38
40
39
41
$ context = new MessageContext ('default ' , 'default ' , $ trigger , $ this ->createMock (\DateTimeImmutable::class));
40
42
$ envelope = (new Envelope (new \stdClass ()))->with (new ScheduledStamp ($ context ));
41
43
42
44
/** @var ContainerInterface $scheduleProviderLocator */
43
45
$ listener = new DispatchSchedulerEventListener ($ scheduleProviderLocator , $ eventDispatcher = new EventDispatcher ());
44
46
$ workerReceivedEvent = new WorkerMessageReceivedEvent ($ envelope , 'default ' );
47
+ $ workerHandledEvent = new WorkerMessageHandledEvent ($ envelope , 'default ' );
45
48
$ secondListener = new TestEventListener ();
46
49
47
50
$ eventDispatcher ->addListener (PreRunEvent::class, [$ secondListener , 'preRun ' ]);
48
- $ eventDispatcher ->addListener (PreRunEvent ::class, [$ secondListener , 'postRun ' ]);
51
+ $ eventDispatcher ->addListener (PostRunEvent ::class, [$ secondListener , 'postRun ' ]);
49
52
$ listener ->onMessageReceived ($ workerReceivedEvent );
53
+ $ listener ->onMessageHandled ($ workerHandledEvent );
50
54
51
55
$ this ->assertTrue ($ secondListener ->preInvoked );
52
56
$ this ->assertTrue ($ secondListener ->postInvoked );
0 commit comments