public void Transaction_CommitAsyncShouldBubbleExceptions() { var message = "Message"; var handlerWasCalled = false; var handlers = new List<Func<string, Task>>() { (m) => { handlerWasCalled = true; throw new Exception("This is an exception. There have been others but this one is mine."); } }; var transaction = new Transaction<string>(message, handlers); transaction.NotProcessedActions.Count.Should().Be(1); transaction.ProcessedActions.Count.Should().Be(0); transaction.Awaiting(x => x.CommitAsync()).ShouldThrow<Exception>(); handlerWasCalled.Should().BeTrue(); transaction.NotProcessedActions.Count.Should().Be(1); transaction.ProcessedActions.Count.Should().Be(0); }