public void Execute() { // Arrange Mock <ControllerContext> mockControllerContext = new Mock <ControllerContext>(); mockControllerContext.Expect(c => c.Controller).Returns(new ExecuteController()); ControllerContext controllerContext = mockControllerContext.Object; Dictionary <string, object> parameters = new Dictionary <string, object>() { { "id1", 42 } }; ReflectedAsyncActionDescriptor ad = GetActionDescriptor(_asyncMethod, _completedMethod); SignalContainer <object> resultContainer = new SignalContainer <object>(); AsyncCallback callback = ar => { object o = ad.EndExecute(ar); resultContainer.Signal(o); }; // Act ad.BeginExecute(controllerContext, parameters, callback, null); object retVal = resultContainer.Wait(); // Assert Assert.AreEqual("Hello world: 42", retVal); }
public void Execute_ThrowsIfParametersIsNull() { // Arrange ReflectedAsyncActionDescriptor ad = GetActionDescriptor(_asyncMethod, _completedMethod); // Act & assert Assert.ThrowsArgumentNull( delegate { ad.BeginExecute(new ControllerContext(), null, null, null); }, "parameters"); }
public void Execute_ThrowsIfControllerContextIsNull() { // Arrange ReflectedAsyncActionDescriptor ad = GetActionDescriptor(_asyncMethod, _completedMethod); // Act & assert Assert.ThrowsArgumentNull( delegate { ad.BeginExecute(null, new Dictionary <string, object>(), null, null); }, "controllerContext"); }
public void Execute_ThrowsIfControllerIsNotAsyncManagerContainer() { // Arrange ReflectedAsyncActionDescriptor ad = GetActionDescriptor(_asyncMethod, _completedMethod); ControllerContext controllerContext = new ControllerContext() { Controller = new RegularSyncController() }; // Act & assert Assert.Throws <InvalidOperationException>( delegate { ad.BeginExecute(controllerContext, new Dictionary <string, object>(), null, null); }, @"The controller of type 'System.Web.Mvc.Async.Test.ReflectedAsyncActionDescriptorTest+RegularSyncController' must subclass AsyncController or implement the IAsyncManagerContainer interface."); }