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);
}