public void SimpleArray()
        {
            var request = new HttpRequest("GET", "/", "HTTP/1.1");
            request.Form.Add("Ages[]", "8");
            request.Form.Add("Ages[]", "32");

            var modelMapper = new ModelMapper();
            var actual = modelMapper.Bind<SimpleArrayViewModel>(request, "");

            Assert.Equal(8, actual.Ages[0]);
            Assert.Equal(32, actual.Ages[1]);
        }
Exemplo n.º 2
0
        public void SimpleArray()
        {
            var request = new HttpRequest();
            request.Form.Add("Ages[]", "8");
            request.Form.Add("Ages[]", "32");

            var modelMapper = new ModelMapper();
            var actual = (SimpleArrayViewModel)modelMapper.Map(typeof(SimpleArrayViewModel), request, "");

            Assert.Equal(8, actual.Ages[0]);
            Assert.Equal(32, actual.Ages[1]);
        }
Exemplo n.º 3
0
        public void SimpleMapping()
        {
            var request = new HttpRequest();
            request.Form.Add("UserName", "Jonas");
            request.Form.Add("FirstName", "Arne");

            var modelMapper = new ModelMapper();
            var user = (UserViewModel)modelMapper.Map(typeof(UserViewModel), request, "");

            Assert.Equal("Jonas", user.UserName);
            Assert.Equal("Arne", user.FirstName);
        }
        public void SimpleMapping()
        {
            var request = new HttpRequest("GET", "/", "HTTP/1.1");
            request.Form.Add("UserName", "Jonas");
            request.Form.Add("FirstName", "Arne");

            var modelMapper = new ModelMapper();
            var actual = modelMapper.Bind<UserViewModel>(request, "");

            Assert.Equal("Jonas", actual.UserName);
            Assert.Equal("Arne", actual.FirstName);
        }
Exemplo n.º 5
0
        public void Nested()
        {
            var request = new HttpRequest();
            request.Form.Add("Author.UserName", "Jonas");
            request.Form.Add("Author.FirstName", "Arne");
            request.Form.Add("Rating", "22");

            var modelMapper = new ModelMapper();
            var actual = (RatingViewModel)modelMapper.Map(typeof(RatingViewModel), request, "");

            Assert.Equal("Jonas", actual.Author.UserName);
            Assert.Equal("Arne", actual.Author.FirstName);
        }
        public void Nested()
        {
            var request = new HttpRequest("GET", "/", "HTTP/1.1");
            request.Form.Add("Author.UserName", "Jonas");
            request.Form.Add("Author.FirstName", "Arne");
            request.Form.Add("Rating", "22");

            var modelMapper = new ModelMapper();
            var actual = modelMapper.Bind<RatingViewModel>(request, "");

            Assert.Equal("Jonas", actual.Author.UserName);
            Assert.Equal("Arne", actual.Author.FirstName);
        }
        public void ViewModelWithArray_Indexed()
        {
            var request = new HttpRequest("GET", "/", "HTTP/1.1");
            request.Form.Add("Users[0].FirstName", "Hobbe");
            request.Form.Add("Users[0].Age", "32");
            request.Form.Add("Users[1].FirstName", "Kalle");
            request.Form.Add("Users[2].Age", "10");

            var modelMapper = new ModelMapper();
            var actual = modelMapper.Bind<UsersViewModel>(request, "");

            Assert.Equal("Hobbe", actual.Users[0].FirstName);
            Assert.Equal("Kalle", actual.Users[1].FirstName);
        }
        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 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));
        }  
        public void Array_Associative()
        {
            var request = new HttpRequest("GET", "/", "HTTP/1.1");
            request.Form.Add("Users[Jonas].FirstName", "Hobbe");
            request.Form.Add("Users[Jonas].Age", "32");
            request.Form.Add("Users[Arne].FirstName", "Kalle");
            request.Form.Add("Users[Arne].Age", "10");

            var modelMapper = new ModelMapper();
            var actual = modelMapper.Bind<Dictionary<string, UserViewModel>>(request, "Users");

            Assert.Equal("Hobbe", actual["Jonas"].FirstName);
            Assert.Equal("Kalle", actual["Arne"].FirstName);
        }
        public void Array_AssociativeNumeric()
        {
            var request = new HttpRequest("GET", "/", "HTTP/1.1");
            request.Form.Add("Users['0'].FirstName", "Hobbe");
            request.Form.Add("Users['0'].Age", "32");
            request.Form.Add("Users['1'].FirstName", "Kalle");
            request.Form.Add("Users['1'].Age", "10");

            var modelMapper = new ModelMapper();
            var actual = modelMapper.Bind<SimpleAssocArrayViewModel>(request, "");

            Assert.Equal("Hobbe", actual.Users["0"].FirstName);
            Assert.Equal("Kalle", actual.Users["1"].FirstName);
        }
        public void Array_Indexed()
        {
            var request = new HttpRequest();
            request.Form.Add("users[0].FirstName", "Hobbe");
            request.Form.Add("users[0].Age", "32");
            request.Form.Add("users[1].FirstName", "Kalle");
            request.Form.Add("users[2].Age", "10");

            var modelMapper = new ModelMapper();
            var actual = modelMapper.Bind<UserViewModel[]>(request, "users");

            Assert.Equal("Hobbe", actual[0].FirstName);
            Assert.Equal("Kalle", actual[1].FirstName);
        }