public void UpdateModelThrowsIfModelStateInvalid() { // Arrange MyModel myModel = new MyModelSubclassed(); Controller controller = new EmptyController(); controller.ModelState.AddModelError("key", "some exception message"); // Act & assert ExceptionHelper.ExpectInvalidOperationException( delegate { controller.UpdateModel(myModel, new SimpleValueProvider()); }, "The model of type 'System.Web.Mvc.Test.ControllerTest+MyModel' could not be updated."); }
public void UpdateModelWithoutBindPropertiesImpliesAllPropertiesAreUpdateable() { // Arrange MyModel myModel = new MyModelSubclassed(); Controller controller = new EmptyController(); // Act controller.UpdateModel(myModel, "somePrefix", new SimpleValueProvider()); // Assert Assert.IsTrue(myModel.BindingContext.PropertyFilter("prop1"), "Incorrect filter applied."); Assert.IsTrue(myModel.BindingContext.PropertyFilter("prop2"), "Incorrect filter applied."); Assert.IsTrue(myModel.BindingContext.PropertyFilter("prop3"), "Incorrect filter applied."); }
public void UpdateModelReturnsIfModelStateValid() { // Arrange MyModel myModel = new MyModelSubclassed(); Controller controller = new EmptyController(); // Act controller.UpdateModel(myModel, new SimpleValueProvider()); // Assert // nothing to do - if we got here, the test passed }
public void UpdateModelSuppliesControllerValueProviderIfNoValueProviderSpecified() { // Arrange MyModel myModel = new MyModelSubclassed(); IValueProvider valueProvider = new SimpleValueProvider(); Controller controller = new EmptyController() { ValueProvider = valueProvider }; // Act controller.UpdateModel(myModel, "somePrefix", new[] { "prop1", "prop2" }); // Assert Assert.AreEqual(valueProvider, myModel.BindingContext.ValueProvider); }
public void TryUpdateModelSuppliesEmptyModelNameIfNoPrefixSpecified() { // Arrange MyModel myModel = new MyModelSubclassed(); Controller controller = new EmptyController(); // Act bool returned = controller.TryUpdateModel(myModel, new[] { "prop1", "prop2" }, new SimpleValueProvider()); // Assert Assert.IsTrue(returned); Assert.AreEqual(String.Empty, myModel.BindingContext.ModelName); }
public void TryUpdateModelReturnsFalseIfModelStateInvalid() { // Arrange MyModel myModel = new MyModelSubclassed(); Controller controller = new EmptyController(); controller.ModelState.AddModelError("key", "some exception message"); // Act bool returned = controller.TryUpdateModel(myModel, new SimpleValueProvider()); // Assert Assert.IsFalse(returned); }
public void TryUpdateModelCallsModelBinderForModel() { // Arrange MyModel myModel = new MyModelSubclassed(); IValueProvider valueProvider = new SimpleValueProvider(); Controller controller = new EmptyController(); controller.ControllerContext = GetControllerContext("someAction"); // Act bool returned = controller.TryUpdateModel(myModel, "somePrefix", new[] { "prop1", "prop2" }, null, valueProvider); // Assert Assert.IsTrue(returned); Assert.AreEqual(valueProvider, myModel.BindingContext.ValueProvider); Assert.AreEqual("somePrefix", myModel.BindingContext.ModelName); Assert.AreEqual(controller.ModelState, myModel.BindingContext.ModelState); Assert.AreEqual(typeof(MyModel), myModel.BindingContext.ModelType); Assert.IsTrue(myModel.BindingContext.PropertyFilter("prop1"), "Incorrect filter applied."); Assert.IsTrue(myModel.BindingContext.PropertyFilter("prop2"), "Incorrect filter applied."); Assert.IsFalse(myModel.BindingContext.PropertyFilter("prop3"), "Incorrect filter applied."); }
public void TryUpdateModelWithoutBindPropertiesImpliesAllPropertiesAreUpdateable() { // Arrange MyModel myModel = new MyModelSubclassed(); Controller controller = new EmptyController(); // Act bool returned = controller.TryUpdateModel(myModel, "somePrefix", new SimpleValueProvider()); // Assert Assert.True(returned); Assert.True(myModel.BindingContext.PropertyFilter("prop1")); Assert.True(myModel.BindingContext.PropertyFilter("prop2")); Assert.True(myModel.BindingContext.PropertyFilter("prop3")); }
public void TryUpdateModelSuppliesControllerValueProviderIfNoValueProviderSpecified() { // Arrange MyModel myModel = new MyModelSubclassed(); IValueProvider valueProvider = new SimpleValueProvider(); Controller controller = new EmptyController(); controller.ValueProvider = valueProvider; // Act bool returned = controller.TryUpdateModel(myModel, "somePrefix", new[] { "prop1", "prop2" }); // Assert Assert.True(returned); Assert.Equal(valueProvider, myModel.BindingContext.ValueProvider); }