public static void TestSetPropertyValueChanged() { bool changed = false; string value = null; TestViewModel tvm = new TestViewModel(); tvm.BindPropertyChanged <string>("StringProperty", (v) => { value = v; changed = true; }); Assert.That(tvm.StringProperty, Is.Null); tvm.StringProperty = "A string value"; Assert.That(tvm.StringProperty, Is.EqualTo("A string value")); Assert.That(changed, Is.True); Assert.That(value, Is.EqualTo("A string value")); value = null; changed = false; tvm.StringProperty = "A string value"; Assert.That(tvm.StringProperty, Is.EqualTo("A string value")); Assert.That(changed, Is.False); Assert.That(value, Is.Null); tvm.StringProperty = "Another string value"; Assert.That(tvm.StringProperty, Is.EqualTo("Another string value")); Assert.That(changed, Is.True); Assert.That(value, Is.EqualTo("Another string value")); }
public static void TestValidationError() { TestViewModel tvm = new TestViewModel(); TestValidationErrorCode errorCode = TestValidationErrorCode.Unknown; tvm.BindPropertyChanged <int>("ValidationError", (n) => { errorCode = (TestValidationErrorCode)n; }); tvm.StringProperty = "Error"; Assert.That(tvm.Error.Length, Is.GreaterThan(0)); Assert.That(errorCode, Is.EqualTo(TestValidationErrorCode.BadString)); Assert.That(tvm.ValidationError, Is.EqualTo((int)TestValidationErrorCode.BadString)); tvm.IntProperty = -100; Assert.That(tvm.Error.Length, Is.GreaterThan(0)); Assert.That(errorCode, Is.EqualTo(TestValidationErrorCode.BadInt)); Assert.That(tvm.ValidationError, Is.EqualTo((int)TestValidationErrorCode.BadInt)); tvm.StringProperty = ""; tvm.IntProperty = 100; Assert.That(tvm.Error.Length, Is.EqualTo(0)); }