Ejemplo n.º 1
0
        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"));
        }