/** * @test */ public function it_invokes_all_listeners() { $handler = new MessageHandler(); $this->eventBus->getActionEventEmitter()->attachListener(MessageBus::EVENT_ROUTE, function (ActionEvent $e) use($handler) { if ($e->getParam(MessageBus::EVENT_PARAM_MESSAGE_NAME) === CustomMessage::class) { $e->setParam(EventBus::EVENT_PARAM_EVENT_LISTENERS, [$handler, $handler]); } }); $customMessage = new CustomMessage("foo"); $this->eventBus->dispatch($customMessage); $this->assertSame($customMessage, $handler->getLastMessage()); $this->assertEquals(2, $handler->getInvokeCounter()); }