public void GetBindersFromAttributes_ReadsModelBinderAttributeFromBuddyClass()
        {
            // Act
            IModelBinder binder = ModelBinders.GetBinderFromAttributes(typeof(SampleModel), null);

            // Assert
            Assert.IsType <SampleModelBinder>(binder);
        }
示例#2
0
        public void GetBindersFromAttributes_ReadsModelBinderAttributeFromBuddyClass()
        {
            Action <Type> errorAction = (Type t) => { throw new InvalidOperationException(); };
            // Act
            IModelBinder binder = ModelBinders.GetBinderFromAttributes(typeof(SampleModel), errorAction);

            // Assert
            Assert.IsType <SampleModelBinder>(binder);
        }
        public static void Execute(this IController controller, string action)
        {
            var request = RequestBuilder.CreateRequest(controller.GetType().Name, action, null);

            controller.Execute(
                new ControllerContext(
                    controller,
                    request.BuildRequest(),
                    ViewEngines.CreateDefaults(),
                    ModelBinders.CreateDefaults(),
                    () => { }
                    ));
        }
示例#4
0
        public void GetBindersFromAttributes_NullIfGetCustomAttributesReturnsNull()
        {
            // Arrange
            var  provider = new Mock <ICustomAttributeProvider>(MockBehavior.Strict);
            bool inherit  = true;

            provider.Setup(p => p.GetCustomAttributes(typeof(CustomModelBinderAttribute), inherit)).Returns((object[])null);
            Action <ICustomAttributeProvider> errorAction = (ICustomAttributeProvider t) => { throw new InvalidOperationException(); };

            // Act
            IModelBinder binder = ModelBinders.GetBinderFromAttributes(provider.Object, errorAction);

            // Assert
            Assert.Null(binder);
        }
示例#5
0
        /// <summary>
        /// 配置查询的缺省参数设置
        /// </summary>
        /// <modelExp name="setting"></modelExp>
        public static void Configure(DefaultQuerySettings setting)
        {
            if (setting == null)
            {
                throw new ArgumentNullException("setting");
            }
            if (string.IsNullOrEmpty(setting.PageSizeName))
            {
                throw new ArgumentNullException("setting.PageSizeName");
            }
            if (string.IsNullOrEmpty(setting.PageIndexName))
            {
                throw new ArgumentNullException("setting.PageIndexName");
            }
            if (string.IsNullOrEmpty(setting.SortPropertyName))
            {
                throw new ArgumentNullException("setting.SortPropertyName");
            }
            if (string.IsNullOrEmpty(setting.SortOrderName))
            {
                throw new ArgumentNullException("setting.SortOrderName");
            }
            if (string.IsNullOrEmpty(setting.AscendingValue))
            {
                throw new ArgumentNullException("setting.AscendingValue");
            }
            if (string.IsNullOrEmpty(setting.DescendingValue))
            {
                throw new ArgumentNullException("setting.DescendingValue");
            }
            if (setting.PageSize == 0)
            {
                throw new ArgumentException("setting.PageSize 必须大于0");
            }

            var binder = new QueryContextBinder(setting);

            ModelBinders.RegisterBinder <QueryContext, QueryContextBinder>(binder);
        }
示例#6
0
 public virtual IModelBinder GetModelBinder(ParameterDescriptor parameterDescriptor)
 {
     return(parameterDescriptor.BindingInfo.Binder ?? ModelBinders.GetBinder(parameterDescriptor.ParameterType));
 }
示例#7
0
 public ControllerContext BuildControllerContext(IController controllerInstance)
 {
     return(new ControllerContext(controllerInstance, BuildRequest(), ViewEngines.CreateDefaults(), ModelBinders.CreateDefaults(), () => { }));
 }