public void CanBind_List() { var context = Substitute.For<IModelBinderContext>(); context.ModelType.Returns(typeof(IEnumerable<int>)); var binder = new ArrayModelBinder(); Assert.False(binder.CanBind(context)); }
public void CanBind_Primitive() { var context = Substitute.For<IModelBinderContext>(); context.ModelType.Returns(typeof(int)); var binder = new ArrayModelBinder(); Assert.False(binder.CanBind(context)); }
public void CanBind_IntArray() { var context = Substitute.For<IModelBinderContext>(); context.ModelType.Returns(typeof (int[])); var binder = new ArrayModelBinder(); Assert.True(binder.CanBind(context)); }
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 Bind_IntArray_Index() { var provider = new ValueProvider() { Parameters = { new Parameter("ages[1]", "3"), new Parameter("ages[0]", "20") } }; var context = new ModelBinderContext(typeof(int[]), "ages", "", provider); context.RootBinder = new PrimitiveModelBinder(); var binder = new ArrayModelBinder(); var actual = (int[])binder.Bind(context); Assert.NotNull(actual); Assert.Equal(3, actual[1]); Assert.Equal(20, actual[0]); }
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 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)); }