ProophTest\ServiceBus\Plugin\Router\AsyncSwitchMessageRouterTest::marked_message_is_passed_to_decorated_router_as_already_handled_by_async_provider PHP Method

marked_message_is_passed_to_decorated_router_as_already_handled_by_async_provider() public method

    public function marked_message_is_passed_to_decorated_router_as_already_handled_by_async_provider()
    {
        $messageProducer = $this->prophesize(MessageProducer::class);
        $decoratedRouter = $this->prophesize(SingleHandlerRouter::class);
        $message = AsyncCommand::createCommand('test-data');
        $message = $message->withAddedMetadata('handled-async', true);
        $actionEvent = new DefaultActionEvent(AsyncCommand::class, new CommandBus(), [MessageBus::EVENT_PARAM_MESSAGE_NAME => get_class($message), MessageBus::EVENT_PARAM_MESSAGE => $message]);
        $decoratedRouter->onRouteMessage($actionEvent)->willReturn('handled-by-decorated-router');
        $router = new AsyncSwitchMessageRouter($decoratedRouter->reveal(), $messageProducer->reveal());
        $rtn = $router->onRouteMessage($actionEvent);
        $this->assertEquals('handled-by-decorated-router', $rtn);
        $updatedMessage = $actionEvent->getParam(MessageBus::EVENT_PARAM_MESSAGE);
        $this->assertArrayHasKey('handled-async', $updatedMessage->metadata());
        $this->assertTrue($updatedMessage->metadata()['handled-async']);
    }