public ConfigurationBinderImpl(ValueProvider provider) { _provider = provider; _binder = new FastModelBinder(); _context = new ConfigurationBinderContext(provider); }
public void Bind_ViewModelArray_Gap() { var provider = new ValueProvider { Parameters = { new Parameter("user[1].FirstName", "jonas"), new Parameter("user[3].FirstName", "Arne"), new Parameter("user[0].Age", "32"), new Parameter("user[1].Age", "23") } }; var mapper = new ModelMapper(); mapper.Clear(); mapper.AddBinder(new PrimitiveModelBinder()); mapper.AddBinder(new ClassBinder()); var context = new ModelBinderContext(typeof(UserViewModel[]), "user", "", provider) { RootBinder = mapper }; var binder = new ArrayModelBinder(); Assert.Throws <ModelBindingException>(() => binder.Bind(context)); }
public InstanceBinderContext(ModelBinderContext context) { _contextStack = new Stack <ModelBinderContext>(); _contextStack.Push(context); _propertyStack = new Stack <ObjectPropertyBinder>(); }
public InstanceBinderContext(ModelBinderContext context) { _contextStack = new Stack<ModelBinderContext>(); _contextStack.Push(context); _propertyStack = new Stack<ObjectPropertyBinder>(); }
public void Bind_ViewModelArray_Index() { var provider = new ValueProvider { Parameters = { new Parameter("user[1].FirstName", "jonas"), new Parameter("user[0].FirstName", "Arne"), new Parameter("user[0].Age", "32"), new Parameter("user[1].Age", "23") } }; var mapper = new ModelMapper(); mapper.Clear(); mapper.AddBinder(new PrimitiveModelBinder()); mapper.AddBinder(new ClassBinder()); var context = new ModelBinderContext(typeof(UserViewModel[]), "user", "", provider) { RootBinder = mapper }; var binder = new ArrayModelBinder(); var actual = (UserViewModel[])binder.Bind(context); Assert.NotNull(actual); Assert.Equal("jonas", actual[1].FirstName); Assert.Equal("Arne", actual[0].FirstName); Assert.Equal(23, actual[1].Age); Assert.Equal(32, actual[0].Age); }
public void String_Ok() { var provider = new ValueProvider() { Parameters = { new Parameter("code", "Forbidden") } }; var context = new ModelBinderContext(typeof(HttpStatusCode), "code", "", provider); var binder = new EnumModelBinder(); var actual = (HttpStatusCode)binder.Bind(context); Assert.Equal(HttpStatusCode.Forbidden, actual); }
public void Number_Ok() { var provider = new ValueProvider() { Parameters = { new Parameter("code", "404") } }; var context = new ModelBinderContext(typeof(HttpStatusCode), "code", "", provider); var binder = new EnumModelBinder(); var actual = (HttpStatusCode)binder.Bind(context); Assert.Equal(HttpStatusCode.NotFound, actual); }
public void String() { var provider = new ValueProvider() { Parameters = { new Parameter("age", "Why do you need to know???") } }; var context = new ModelBinderContext(typeof(string), "age", "", provider); var binder = new PrimitiveModelBinder(); var actual = (string)binder.Bind(context); Assert.Equal("Why do you need to know???", actual); }
public void Int() { var provider = new ValueProvider() { Parameters = { new Parameter("age", "3") } }; var context = new ModelBinderContext(typeof(int), "age", "", provider); var binder = new PrimitiveModelBinder(); var actual = (int)binder.Bind(context); Assert.Equal(3, actual); }
public void Bind_IntArray_Gap() { var provider = new ValueProvider() { Parameters = { new Parameter("ages[2]", "3"), new Parameter("ages[0]", "20") } }; var context = new ModelBinderContext(typeof(int[]), "ages", "", provider); context.RootBinder = new PrimitiveModelBinder(); var binder = new ArrayModelBinder(); Assert.Throws <ModelBindingException>(() => binder.Bind(context)); }
public void Double() { Thread.CurrentThread.CurrentCulture = new CultureInfo(1033); var provider = new ValueProvider() { Parameters = { new Parameter("age", "3.5") } }; var context = new ModelBinderContext(typeof(double), "age", "", provider); var binder = new PrimitiveModelBinder(); var actual = (double)binder.Bind(context); Assert.Equal(3.5, actual); }
public void Bind_IntArray_NoIndex() { var provider = new ValueProvider() { Parameters = { new Parameter("ages[]", "3", "20") } }; var context = new ModelBinderContext(typeof(int[]), "ages", "", provider); var binder = new ArrayModelBinder(); var actual = (int[])binder.Bind(context); Assert.NotNull(actual); Assert.Equal(3, actual[0]); Assert.Equal(20, actual[1]); }
public void NoPublicDefaultConstructor() { var provider = new ValueProvider { Parameters = { new Parameter("user.FirstName", "jonas"), } }; var mapper = new ModelMapper(); mapper.Clear(); mapper.AddBinder(new PrimitiveModelBinder()); var context = new ModelBinderContext(typeof(Test), "user", "", provider) { RootBinder = mapper }; var binder = new ClassBinder(); Assert.Throws <ModelBindingException>(() => binder.Bind(context)); }
public void InvalidFieldType() { var provider = new ValueProvider { Parameters = { new Parameter("user.FirstName", "jonas"), new Parameter("user.Age", "arne") } }; var mapper = new ModelMapper(); mapper.Clear(); mapper.AddBinder(new PrimitiveModelBinder()); var context = new ModelBinderContext(typeof(UserViewModel), "user", "", provider) { RootBinder = mapper }; var binder = new ClassBinder(); Assert.Throws <ModelBindingException>(() => binder.Bind(context)); }
public void UnknownField() { var provider = new ValueProvider { Parameters = { new Parameter("user.FirstName", "jonas"), new Parameter("user.NotInventedHere", "23") } }; var mapper = new ModelMapper(); mapper.Clear(); mapper.AddBinder(new PrimitiveModelBinder()); var context = new ModelBinderContext(typeof(UserViewModel), "user", "", provider) { RootBinder = mapper }; var binder = new ClassBinder(); var actual = (UserViewModel)binder.Bind(context); Assert.Equal("jonas", actual.FirstName); }
public T Bind <T>(ModelBinderContext context) { return((T)Bind(typeof(T), context)); }
public object Bind(Type type, ModelBinderContext context) { return(new InstanceBinderContext(context).Bind(type)); }