Exemplo n.º 1
0
        public void SetProperty_GivenSimplePropertyFilter_WhenSecondOrderUnset_IgnoresNestedPropertyChange()
        {
            var secondOrder = GetSecondOrderObject();

            var  p         = new PropertyChangedTrigger(secondOrder, "Child", null, _logger);
            bool triggered = false;

            p.Activate(null);
            // hook up the event after the first depth is set so that the trigger must come from next depth.
            p.Triggered += (sender, args) => { triggered = true; };
            // unset the nested property
            secondOrder.Child.Child = null;

            Assert.IsFalse(triggered);
        }
Exemplo n.º 2
0
        public void SetProperty_GivenThirdOrderNesting_WhenThirdOrderSet_RaisesTriggeredEvent()
        {
            var thirdOrder = GetThirdOrderObject();

            var  p           = new PropertyChangedTrigger(thirdOrder, "Child.Child.Child", null, _logger);
            bool triggered   = false;
            int  triggeredBy = -1;

            p.Triggered += (sender, args) => {
                triggeredBy = ((args.GetTripOrigin().Signal as BoundPropertyChangedEventArgs).PropertyOwner as NotifyPropertyChangedImpl).NestLevel;
                triggered   = true;
            };
            p.Activate(null);
            thirdOrder.Child.Child.Child = null;

            Assert.IsTrue(triggered);
            Assert.AreEqual(2, triggeredBy);
        }
Exemplo n.º 3
0
        public void SetProperty_GivenSimplePropertyFilter_WhenFirstOrdeSet_RaisesTriggeredEvent()
        {
            var firstOrder = new NotifyPropertyChangedImpl(0);

            var  p           = new PropertyChangedTrigger(firstOrder, "Child", null, _logger);
            bool triggered   = false;
            int  triggeredBy = -1;

            p.Triggered += (sender, args) => {
                triggeredBy = ((args.GetTripOrigin().Signal as BoundPropertyChangedEventArgs).PropertyOwner as NotifyPropertyChangedImpl).NestLevel;
                triggered   = true;
            };

            p.Activate(null);
            firstOrder.Child = new NotifyPropertyChangedImpl(1);

            Assert.IsTrue(triggered);
            Assert.AreEqual(0, triggeredBy);
        }