public void CanBindToMember()
        {
            // Arrange
            var formCollection = new NameValueCollection {
                { "foo.FirstName", "Fernando" },
                { "foo.LastName", "Alonso" }
            };

            var valueProvider = new NameValueCollectionValueProvider(formCollection, null);
            var modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, typeof(Member));

            var bindingContext = new ModelBindingContext
            {
                ModelName = "foo",
                ValueProvider = valueProvider,
                ModelMetadata = modelMetadata
            };

            MemberModelBinder b = new MemberModelBinder();
            ControllerContext controllerContext = new ControllerContext();

            // Act
            Member result = (Member)b.BindModel(controllerContext, bindingContext);

            // Assert
            Assert.AreEqual("Fernando", result.FirstName, "Incorrect value for FirstName");
            Assert.AreEqual("Alonso", result.LastName, "Incorrect value for LastName");
        }
        public void CanBindToMember()
        {
            // Arrange
            var formCollection = new NameValueCollection {
                { "foo.FirstName", "Fernando" },
                { "foo.LastName", "Alonso" }
            };

            var valueProvider = new NameValueCollectionValueProvider(formCollection, null);
            var modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, typeof(Member));

            var bindingContext = new ModelBindingContext
            {
                ModelName     = "foo",
                ValueProvider = valueProvider,
                ModelMetadata = modelMetadata
            };

            MemberModelBinder b = new MemberModelBinder();
            ControllerContext controllerContext = new ControllerContext();

            // Act
            Member result = (Member)b.BindModel(controllerContext, bindingContext);

            // Assert
            Assert.AreEqual("Fernando", result.FirstName, "Incorrect value for FirstName");
            Assert.AreEqual("Alonso", result.LastName, "Incorrect value for LastName");
        }