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); }
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); }