示例#1
0
            public async Task Should_Only_Aggregate_Exceptions_When_There_Are_Many()
            {
                // Given
                var task    = new CakeTask("task");
                var context = new CakeContextFixture().CreateContext();

                // When
                task.Actions.Add((c) => throw new NotImplementedException());
                task.SetDeferExceptions(true);
                var result = await Record.ExceptionAsync(() => task.Execute(context));

                // Then
                Assert.IsType <NotImplementedException>(result);
            }
示例#2
0
            public async Task Should_Aggregate_Exceptions_From_Actions()
            {
                // Given
                var task    = new CakeTask("task");
                var context = new CakeContextFixture().CreateContext();

                // When
                task.Actions.Add((c) => throw new NotImplementedException());
                task.Actions.Add((c) => throw new NotSupportedException());
                task.Actions.Add((c) => throw new OutOfMemoryException());
                task.SetDeferExceptions(true);
                var result = await Record.ExceptionAsync(() => task.Execute(context));

                // Then
                Assert.IsType <AggregateException>(result);
                var ex = result as AggregateException;

                Assert.Contains(ex.InnerExceptions, x => x.GetType() == typeof(NotImplementedException));
                Assert.Contains(ex.InnerExceptions, x => x.GetType() == typeof(NotSupportedException));
                Assert.Contains(ex.InnerExceptions, x => x.GetType() == typeof(OutOfMemoryException));
            }