public async Task Commands_CanHandleCommandThatFiresOtherCommandsWithAReturnValue()
{
// Arrange
var handlerFactory = new MessageHandlerRegistry();
var mediator = new Mediator(handlerFactory.MultiInstanceFactory, handlerFactory.SingleInstanceFactory);
handlerFactory.AddHandlersForCommandOrQuery<ICommandHandler<TestCommandWithResult>>(new TestCommandWithResultHandler(mediator));
handlerFactory.AddHandlersForCommandOrQuery<ICommandHandler<TestMultipleCommandWithResult>>(new TestMultipleCommandHandlerWithResult(mediator));
// Act
var result = await mediator.Send(new TestMultipleCommandWithResult { Name = "bar" });
// Assert
Assert.IsTrue(result.Result<TestCommandResult>().ResultingValue == 5);
}