public void GetFiltersReturnsFilterInfo()
        {
            // Arrange
            ActionDescriptor ad = GetActionDescriptor();

            // Act
            FilterInfo filters  = ad.GetFilters();
            FilterInfo filters2 = ad.GetFilters();

            // Assert
            Assert.IsNotNull(filters);
            Assert.AreNotSame(filters, filters2, "Should have returned different FilterInfo objects so that changes in one won't be reflected in the other.");
        }
        protected override FilterInfo GetFilters(ControllerContext controllerContext, ActionDescriptor actionDescriptor)
        {
            var rubyType = ((RubyController) controllerContext.Controller).RubyType;
            var controllerFilters = (Hash) RubyEngine.CallMethod(rubyType, "action_filters");

            var info = controllerFilters.ToFilterInfo("controller").MergedWith(actionDescriptor.GetFilters());
            return info;
        }
        protected override FilterInfo GetFilters(ControllerContext controllerContext, ActionDescriptor actionDescriptor)
        {
            var rubyType          = ((RubyController)controllerContext.Controller).RubyType;
            var controllerFilters = (Hash)RubyEngine.CallMethod(rubyType, "action_filters");

            var info = controllerFilters.ToFilterInfo("controller").MergedWith(actionDescriptor.GetFilters());

            return(info);
        }
		protected virtual IEnumerable<FilterAttribute> GetActionAttributes(
			ControllerContext context, ActionDescriptor action)
		{
			return action.GetFilters(_useCache);
		}