Пример #1
0
        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);
        }
Пример #2
0
        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;
            }
        }
Пример #4
0
        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();
        }