コード例 #1
0
        public async void Booking_failed()
        {
            var vacationSagaBuilder = new VacationSagaBuilder();

            vacationSagaBuilder.AddStep(new BookFlight().Succeeded());
            vacationSagaBuilder.AddStep(new BookHotel().Failed());

            var saga = vacationSagaBuilder.Build();

            var result = await saga.ExecuteAsync();

            var correlationId = saga.CorrelationId;

            Assert.False(result);
            Assert.True(correlationId.ToString().Length > 0);
        }
コード例 #2
0
        public async void Booking_failed_with_response_message()
        {
            var vacationSagaBuilder = new VacationSagaBuilder();

            vacationSagaBuilder.AddStep(new BookFlight().Succeeded());

            var bookingHotelMessage = string.Empty;

            vacationSagaBuilder.AddStep(new BookHotel().Failed()
                                        .ContinueWith(c => { bookingHotelMessage = "Booking hotel failed!"; return(c.Result); }));

            var saga = vacationSagaBuilder.Build();

            var result = await saga.ExecuteAsync();

            var correlationId = saga.CorrelationId;

            Assert.False(result);
            Assert.True(correlationId.ToString().Length > 0);
            Assert.True(bookingHotelMessage.Length > 0);
            Assert.Equal("Booking hotel failed!", bookingHotelMessage);
        }