コード例 #1
0
        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"));
        }
コード例 #2
0
        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");
        }