public void ModelChangedHandlerTest() { var input = new InputViewModel <int, string>(Converters.IntStringWithExeption); input.Model = 1; var newValue = -1; var oldValue = -1; var count = 0; input.HandleModelChanged = (nwv, old) => { newValue = nwv; oldValue = old; count++; }; input.Model = 2; Assert.AreEqual(2, newValue); Assert.AreEqual(1, oldValue); Assert.AreEqual(1, count); input.EditValueAndUpdateModel(3.ToString()); Assert.AreEqual(3, newValue); Assert.AreEqual(2, oldValue); Assert.AreEqual(2, count); }
public void EditWithReverterTest() { var msg = "test validation error"; var defValue = -1; var preValue = -1; var revertedValue = 10; var validator = new TestValidator <int, string>(msg); var reverter = new TestReverter <int, string>((def, prev) => { defValue = def; preValue = prev; return(revertedValue); }); var input = new InputViewModel <int, string>(Converters.IntStringWithExeption, validator, reverter); validator.SetIsValid(true); input.Model = 1; input.DefaultModel = 11; validator.SetIsValid(false); input.EditValueAndUpdateModel(2.ToString()); Assert.AreEqual(revertedValue, input.Model); Assert.AreEqual(11, defValue); Assert.AreEqual(1, preValue); Assert.AreEqual(revertedValue.ToString(), input.View); Assert.IsFalse(input.IsValid); Assert.AreEqual(msg, input.ErrorMessage); }
public void EditConvertValidationTest() { var input = new InputViewModel <int, string>(Converters.IntStringWithExeption); input.Model = 1; input.EditValueAndUpdateModel("error"); Assert.AreEqual(1, input.Model); Assert.IsFalse(input.IsValid); Assert.AreEqual("error", input.View); }
public void EditWithValidatorNegativeTest() { var msg = "test validation error"; var validator = new TestValidator <int, string>(msg); var input = new InputViewModel <int, string>(Converters.IntStringWithExeption, validator); input.Model = 1; validator.SetIsValid(false); input.EditValueAndUpdateModel(2.ToString()); Assert.AreEqual(1, input.Model); Assert.AreEqual(2.ToString(), input.View); Assert.IsFalse(input.IsValid); Assert.AreEqual(msg, input.ErrorMessage); }