// Local function to avoid reference from stack when garbage collector runs static NotifyPropertyChangedReferencingCircleHelper ReferencingCircleHelper() { var selfReferencingObject = new NotifyPropertyChangedReferencingCircleHelper(); selfReferencingObject.Other = selfReferencingObject; var otherReferencingObject = new NotifyPropertyChangedReferencingCircleHelper { Other = selfReferencingObject }; return(otherReferencingObject); }
public void SettingReferenceToNull_ThatIsCyclic_WillNotBeUntracked() { var selfReferencingChild = new NotifyPropertyChangedReferencingCircleHelper(); selfReferencingChild.Other = selfReferencingChild; var referenceToChild = new NotifyPropertyChangedReferencingCircleHelper { Other = selfReferencingChild }; var SourceSynchronizerRoot = new SourceSynchronizerRoot(referenceToChild); Assert.Equal(2, SourceSynchronizerRoot.TrackedObjects.Count()); referenceToChild.Other = null; Assert.Equal(2, SourceSynchronizerRoot.TrackedObjects.Count()); }