public void BestRescueIsSelectedBasedOnTheExactExceptionType() { ControllerWithMultipleRescues controller = new ControllerWithMultipleRescues(); IControllerContext context = new DefaultControllerContextFactory(). Create("", "home", "index3", services.ControllerDescriptorProvider.BuildDescriptor(controller)); controller.Process(engineContext, context); Assert.AreEqual(500, response.StatusCode); Assert.AreEqual("Error processing action", response.StatusDescription); Assert.AreEqual("rescues\\sqlexception", engStubViewEngineManager.TemplateRendered); }
public void ControllerRescueIsUsed() { ControllerWithRescue controller = new ControllerWithRescue(); IControllerContext context = new DefaultControllerContextFactory(). Create("", "home", "index", services.ControllerDescriptorProvider.BuildDescriptor(controller)); controller.Process(engineContext, context); Assert.AreEqual(500, response.StatusCode); Assert.AreEqual("Error processing action", response.StatusDescription); Assert.AreEqual("rescues\\generalerror", engStubViewEngineManager.TemplateRendered); }
public void InvokingNonExistingActionResultsIn404() { var controller = new ControllerAndViews(); var context = new DefaultControllerContextFactory(). Create("", "home", "NonExistentAction", new ControllerMetaDescriptor()); try { controller.Process(engineContext, context); } catch(MonoRailException) { Assert.AreEqual(404, response.StatusCode); throw; } }
public void FallsBackToExceptionIfNothingMatches() { ControllerWithSpecializedRescuesOnly controller = new ControllerWithSpecializedRescuesOnly(); IControllerContext context = new DefaultControllerContextFactory(). Create("", "home", "index1", services.ControllerDescriptorProvider.BuildDescriptor(controller)); try { controller.Process(engineContext, context); } catch(Exception ex) { Assert.AreEqual(500, response.StatusCode); Assert.AreEqual("Error processing action", response.StatusDescription); Assert.AreEqual("Testing", ex.InnerException.Message); throw; } }
public void FallsBackToGeneralIfNothingMatches() { var controller = new ControllerWithMultipleRescues(); var context = new DefaultControllerContextFactory(). Create("", "home", "index2", services.ControllerDescriptorProvider.BuildDescriptor(controller)); controller.Process(engineContext, context); Assert.AreEqual(500, response.StatusCode); Assert.AreEqual("Error processing action", response.StatusDescription); Assert.AreEqual("rescues\\generalerror", engStubViewEngineManager.TemplateRendered); }