Exemplo n.º 1
0
        public void CanBindSimpleModel()
        {
            int    id           = 2;
            string employeeName = "Michael";

            // Arrange
            var formCollection = new NameValueCollection
            {
                { "Employee.Id", id.ToString() },
                { "Employee.Name", employeeName },
            };

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

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

            DefaultModelBinder target = new SharpModelBinder();

            ControllerContext controllerContext = new ControllerContext();

            // Act
            Employee result = (Employee)target.BindModel(controllerContext, bindingContext);

            // Assert
            Assert.AreEqual(id, result.Id);
            Assert.AreEqual(employeeName, result.Name);
        }
Exemplo n.º 2
0
        public void CanBindSimpleModelWithGuidIdAndNullValue()
        {
            var territoryName = "Someplace, USA";

            // Arrange
            var formCollection = new NameValueCollection
            {
                { "Territory.Id", string.Empty }, { "Territory.Name", territoryName },
            };

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

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

            DefaultModelBinder target = new SharpModelBinder();

            var controllerContext = new ControllerContext();

            // Act
            var result = (Territory)target.BindModel(controllerContext, bindingContext);

            // Assert
            Assert.AreEqual(territoryName, result.Name);
        }
Exemplo n.º 3
0
        public void CanBindModelWithEntityCollection()
        {
            var id           = 2;
            var employeeName = "Michael";

            // Arrange
            var formCollection = new NameValueCollection
            {
                { "Employee.Id", id.ToString() },
                { "Employee.Name", employeeName },
                { "Employee.Reports[0].Name", "Michael" },
                { "Employee.Reports[1].Name", "Alec" },
                { "Employee.Manager", "12" }
            };

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

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

            DefaultModelBinder target = new SharpModelBinder();

            var controllerContext = new ControllerContext();

            // Act
            var result = (Employee)target.BindModel(controllerContext, bindingContext);

            // Assert
            Assert.AreEqual(id, result.Id);
            Assert.AreEqual(employeeName, result.Name);
            Assert.GreaterOrEqual(result.Reports.Count, 2);
        }
        public void CanBindModelWithNestedEntities()
        {
            var id                 = 2;
            var employeeName       = "Michael";
            var managerName        = "Tobias";
            var managerManagerName = "Scott";

            // Arrange
            var formCollection = new NameValueCollection
            {
                { "Employee.Id", id.ToString() },
                { "Employee.Name", employeeName },
                { "Employee.Manager.Name", managerName },
                { "Employee.Manager.Manager.Name", managerManagerName }
            };

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

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

            DefaultModelBinder target = new SharpModelBinder();

            var controllerContext = new ControllerContext();

            // Act
            var result = (Employee)target.BindModel(controllerContext, bindingContext);

            // Assert
            Assert.AreEqual(id, result.Id);
            Assert.AreEqual(employeeName, result.Name);
            Assert.AreEqual(managerName, result.Manager.Name);
            Assert.AreEqual(managerManagerName, result.Manager.Manager.Name);
        }