Наследование: extends Prooph\Common\Messaging\DomainEvent, implements Prooph\Common\Messaging\PayloadConstructable, implements Prooph\ServiceBus\Async\AsyncMessage, use trait Prooph\Common\Messaging\PayloadTrait
 /**
  * @test
  */
 public function it_sets_message_producer_as_event_listener_if_target_is_an_event_bus()
 {
     $messageProducer = $this->prophesize(MessageProducer::class);
     $message = AsyncEvent::createEvent('test-data');
     $actionEvent = new DefaultActionEvent(MessageBus::EVENT_ROUTE, new EventBus(), [MessageBus::EVENT_PARAM_MESSAGE_NAME => get_class($message), MessageBus::EVENT_PARAM_MESSAGE => $message]);
     $router = new AsyncSwitchMessageRouter(new EventRouter(), $messageProducer->reveal());
     $router->onRouteMessage($actionEvent);
     $this->assertEquals($messageProducer->reveal(), $actionEvent->getParam(EventBus::EVENT_PARAM_EVENT_LISTENERS)[0]);
     $updatedMessage = $actionEvent->getParam(MessageBus::EVENT_PARAM_MESSAGE);
     $this->assertArrayHasKey('handled-async', $updatedMessage->metadata());
     $this->assertTrue($updatedMessage->metadata()['handled-async']);
 }