Exemple #1
0
        public void Subscription_MismatchingPropertyChanged_DoesNotInvokeHandler()
        {
            TestDerivedObject test = new TestDerivedObject();
            bool called            = false;

            test.SubscribeToPropertyChanged(x => x.ValueProperty, x => called = true);
            test.ObjectProperty = new object();

            Assert.IsFalse(called, "SubscribeToPropertyChanged should not invoke handler when other properties change");
        }
Exemple #2
0
        public void Subscription_MatchingPropertyChanged_InvokesHandler()
        {
            TestDerivedObject test = new TestDerivedObject();
            bool called            = false;

            test.SubscribeToPropertyChanged(x => x.ValueProperty, x => called = true);
            test.ValueProperty = 13;

            Assert.IsTrue(called, "SubscribeToPropertyChanged should invoke handler when property changes");
        }
Exemple #3
0
        public void Subscription_ReturnsUnsubscribableDelegate()
        {
            TestDerivedObject test = new TestDerivedObject();
            bool called            = false;

            var unsubscribe = test.SubscribeToPropertyChanged(x => x.ValueProperty, x => called = true);

            test.PropertyChanged -= unsubscribe;
            test.ValueProperty    = 13;

            Assert.IsFalse(called, "SubscribeToPropertyChanged should not invoke handler when unsubscribed");
        }
Exemple #4
0
        public void TestDerivedSubscription()
        {
            TestDerivedObject test = new TestDerivedObject();
            bool called            = false;

            // Ensure the PropertyChangedEventHandler.Raise extension method will not fail when its "this" parameter is null
            test.ObjectProperty = new object();

            test.SubscribeToPropertyChanged(x => x.ValueProperty, x => called = true);

            Assert.AreEqual(false, called);

            test.ObjectProperty = new object();

            Assert.AreEqual(false, called);

            test.ValueProperty = 13;

            Assert.AreEqual(true, called);
        }