public void TestModelPropertyChanged() { ModelPropertyChangedEventArgs args = null; _model.AddPropertyChangedHandler(TestClass.StrProperty, (o, e) => args = e); _model.Str = "Default"; Assert.That(args, Is.Null); _model.Str = "Test"; Assert.That(args, Is.Not.Null); Assert.That(args.Property, Is.EqualTo(TestClass.StrProperty)); Assert.That(args.OldValue, Is.EqualTo("Default")); Assert.That(args.NewValue, Is.EqualTo("Test")); args = null; _model.Str = "Test"; Assert.That(args, Is.Null); _model.Str = "Test2"; Assert.That(args, Is.Not.Null); Assert.That(args.Property, Is.EqualTo(TestClass.StrProperty)); Assert.That(args.OldValue, Is.EqualTo("Test")); Assert.That(args.NewValue, Is.EqualTo("Test2")); _model.Str = "Default"; Assert.That(args, Is.Not.Null); Assert.That(args.Property, Is.EqualTo(TestClass.StrProperty)); Assert.That(args.OldValue, Is.EqualTo("Test2")); Assert.That(args.NewValue, Is.EqualTo("Default")); }
public void TestAddPropertyChangedHandler() { bool handled = false; EventHandler <ModelPropertyChangedEventArgs> handler = (o, e) => { handled = true; }; _model.AddPropertyChangedHandler(TestClass.IntegerProperty, handler); _model.Integer = 99; Assert.That(handled, Is.True, "handler not called"); handled = false; _model.Integer = 12; Assert.That(handled, Is.True, "handler not called second time"); handled = false; _model.Str = "Banana"; Assert.That(handled, Is.False, "handler called for different property"); Assert.That(handler, Is.Not.Null, "handler released"); }