public async Task Should_support_multiple_result_types() { IPipe <RequestContext> pipe = CreateHandlerPipe(); IRequestPipe <PurchaseTicket> requestPipe = pipe.CreateRequestPipe <PurchaseTicket>( x => x.Result <TicketReceipt>(), x => x.Result <EventSoldOut>()); ResultContext resultContext = await requestPipe.Send(new PurchaseTicket() { EventName = "Golden State Warriors", Quantity = 4 }); TicketReceipt receipt; Assert.That(resultContext.TryGetResult(out receipt), Is.False); EventSoldOut soldOut; Assert.That(resultContext.TryGetResult(out soldOut), Is.True); Assert.That(soldOut.EventName, Is.EqualTo("Golden State Warriors")); }