コード例 #1
0
        public void ObservesAdoptedObject()
        {
            var obj = new Body {
                LeftArm = new Arm {
                    Thumb = new Digit {
                        LengthMM = 50
                    }
                }
            };

            var path = PropertyPaths <Body> .Get <int>(t => t.LeftArm.Thumb.LengthMM).Single();

            var observer = new PropertyPathObserver <Body>(path, obj);

            obj.LeftArm.Thumb = new Digit();

            int changesObserved = 0;

            observer.Changed += (sender, e) =>
            {
                changesObserved++;
            };

            obj.LeftArm.Thumb.LengthMM = 51;

            Assert.Equal(1, changesObserved);
        }
コード例 #2
0
        public void ObservesIntermediatePath()
        {
            var obj  = new Body();
            var path = PropertyPaths <Body> .Get <int>(t => t.LeftArm.Thumb.LengthMM).Single();

            var observer = new PropertyPathObserver <Body>(path, obj);

            int changesObserved = 0;

            observer.Changed += (sender, e) =>
            {
                changesObserved++;
            };

            obj.LeftArm = new Arm();

            Assert.Equal(1, changesObserved);
        }