public void ShouldImplement_AsyncActionDescriptor() { var actionMethod = typeof(TaskController).GetMethod("MethodReturningTask"); var subjectUnderTest = new ReflectedTaskPatternActionDescriptor(actionMethod, null); Assert.IsInstanceOf<AsyncActionDescriptor>(subjectUnderTest); }
public void ShouldHandleTasksWithNoReturnValue() { var controllerContext = MockRepository.GenerateStub<ControllerContext>(); controllerContext.Controller = new TaskController(); var actionMethod = typeof(TaskController).GetMethod("MethodReturningTaskWithNoResult"); var subjectUnderTest = new ReflectedTaskPatternActionDescriptor(actionMethod, null); AsyncCallback callback = ar => subjectUnderTest.EndExecute(ar); var task = Task<object>.Factory.FromAsync( subjectUnderTest.BeginExecute(controllerContext, null, callback, null), subjectUnderTest.EndExecute); Assert.IsNull(task.Result); }
public void ShouldReturnTaskResultWhenExecutedAsynchronously() { var controllerContext = MockRepository.GenerateStub<ControllerContext>(); controllerContext.Controller = new TaskController(); var actionMethod = typeof(TaskController).GetMethod("MethodReturningTask"); var subjectUnderTest = new ReflectedTaskPatternActionDescriptor(actionMethod, null); AsyncCallback callback = ar => subjectUnderTest.EndExecute(ar); var task = Task<object>.Factory.FromAsync( subjectUnderTest.BeginExecute(controllerContext, null, callback, null), subjectUnderTest.EndExecute); Assert.IsInstanceOf<ViewResult>(task.Result); }