public void BestRescueIsSelectedBasedOnTheExactExceptionType() { var controller = new ControllerWithMultipleRescues(); var 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 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); }
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() { var controller = new ControllerWithSpecializedRescuesOnly(); var 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; } }
/// <summary> /// Initializes a new instance of the <see cref="StubMonoRailServices"/> class. /// </summary> /// <param name="urlBuilder">The URL builder.</param> /// <param name="filterFactory">The filter factory.</param> /// <param name="viewEngineManager">The view engine manager.</param> /// <param name="actionSelector">The action selector.</param> /// <param name="dynamicActionProviderFactory">The dynamic action provider factory.</param> public StubMonoRailServices(IUrlBuilder urlBuilder, IFilterFactory filterFactory, IViewEngineManager viewEngineManager, IActionSelector actionSelector, IDynamicActionProviderFactory dynamicActionProviderFactory) { this.UrlBuilder = urlBuilder; this.FilterFactory = filterFactory; this.ViewEngineManager = viewEngineManager; this.ActionSelector = actionSelector; this.DynamicActionProviderFactory = dynamicActionProviderFactory; controllerTree = new DefaultControllerTree(); ControllerFactory = new DefaultControllerFactory(controllerTree); StaticResourceRegistry = new DefaultStaticResourceRegistry(); ControllerContextFactory = new DefaultControllerContextFactory(); ControllerDescriptorProvider = new DefaultControllerDescriptorProvider( new DefaultHelperDescriptorProvider(), new DefaultFilterDescriptorProvider(), new DefaultLayoutDescriptorProvider(), new DefaultRescueDescriptorProvider(), new DefaultResourceDescriptorProvider(), new DefaultTransformFilterDescriptorProvider(), new DefaultReturnBinderDescriptorProvider(), new DefaultDynamicActionProviderDescriptorProvider()); ResourceFactory = new DefaultResourceFactory(); ScaffoldingSupport = new StubScaffoldingSupport(); CacheProvider = new StubCacheProvider(); HelperFactory = new DefaultHelperFactory(); ServiceInitializer = new DefaultServiceInitializer(); ExtensionManager = new ExtensionManager(this); ValidatorRegistry = new CachedValidationRegistry(); JSONSerializer = new NewtonsoftJSONSerializer(); DictionaryAdapterFactory = new DictionaryAdapterFactory(); ScriptBuilder = new DefaultScriptBuilder(); }