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 FrameworkModelBinder(); var controllerContext = new ControllerContext(); // Act var result = (Territory)target.BindModel(controllerContext, bindingContext); // Assert Assert.AreEqual(territoryName, result.Name); }
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 FrameworkModelBinder(); 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); var modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, typeof(Employee)); var bindingContext = new ModelBindingContext { ModelName = "Employee", ValueProvider = valueProvider, ModelMetadata = modelMetadata }; DefaultModelBinder target = new FrameworkModelBinder(); 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); }