public async Task ExecuteActionFilterAsync_IfFaultedTaskExceptionIsUnhandled_PreservesExceptionStackTrace()
        {
            // Arrange
            Exception originalException  = CreateExceptionWithStackTrace();
            string    expectedStackTrace = originalException.StackTrace;

            using (HttpRequestMessage request = new HttpRequestMessage())
            {
                IActionFilter     product = new TestableActionFilter();
                HttpActionContext context = ContextUtil.CreateActionContext();
                Func <Task <HttpResponseMessage> > continuation = () =>
                                                                  CreateFaultedTask <HttpResponseMessage>(originalException);

                // Act
                Exception exception = await Assert.ThrowsAsync <InvalidOperationException>(
                    () =>
                    product.ExecuteActionFilterAsync(
                        context,
                        CancellationToken.None,
                        continuation
                        )
                    );

                // Assert
                Assert.NotNull(expectedStackTrace);
                Assert.StartsWith(expectedStackTrace, exception.StackTrace);
            }
        }
 public void ExecuteActionFilterAsync_IfContinuationParameterIsNull_ThrowsException()
 {
     var filter = new TestableActionFilter() as IActionFilter;
     Assert.ThrowsArgumentNull(() =>
     {
         filter.ExecuteActionFilterAsync(actionContext: ContextUtil.CreateActionContext(), cancellationToken: CancellationToken.None, continuation: null);
     }, "continuation");
 }
예제 #3
0
        public void ExecuteActionFilterAsync_IfContinuationParameterIsNull_ThrowsException()
        {
            var filter = new TestableActionFilter() as IActionFilter;

            Assert.ThrowsArgumentNull(() =>
            {
                filter.ExecuteActionFilterAsync(actionContext: ContextUtil.CreateActionContext(), cancellationToken: CancellationToken.None, continuation: null);
            }, "continuation");
        }
예제 #4
0
        public void AllowsMultiple_DefaultReturnsTrue()
        {
            ActionFilterAttribute actionFilter = new TestableActionFilter();

            Assert.True(actionFilter.AllowMultiple);
        }
        public void AllowsMultiple_DefaultReturnsTrue()
        {
            ActionFilterAttribute actionFilter = new TestableActionFilter();

            Assert.True(actionFilter.AllowMultiple);
        }