public function it_dispatches_a_message_using_the_default_process()
{
$doSomething = new DoSomething(['todo' => 'buy milk']);
$receivedMessage = null;
$dispatchEvent = null;
$this->commandBus->getActionEventEmitter()->attachListener(MessageBus::EVENT_ROUTE, function (ActionEvent $actionEvent) use(&$receivedMessage, &$dispatchEvent) {
$actionEvent->setParam(MessageBus::EVENT_PARAM_MESSAGE_HANDLER, function (DoSomething $doSomething) use(&$receivedMessage) {
$receivedMessage = $doSomething;
});
$dispatchEvent = $actionEvent;
});
$this->commandBus->dispatch($doSomething);
$this->assertSame($doSomething, $receivedMessage);
$this->assertTrue($dispatchEvent->getParam(MessageBus::EVENT_PARAM_MESSAGE_HANDLED));
}