public void VerifyManagedDisposableObjectDisposeSetsWasDisposedToTrue() { var object1 = new ManagedDisposableObject(); object1.Dispose(); Assert.IsTrue(object1.WasDisposed); }
public void VerifyTargetReturnsObjectWhenObjectIsAlive() { var obj = new ManagedDisposableObject(); var weakref = new WeakReferenceOf <ManagedDisposableObject>(obj); Assert.AreEqual(obj, weakref.Target); }
public void VerifyIsAliveReturnsTrueWhenObjectIsAlive() { var obj = new ManagedDisposableObject(); var weakref = new WeakReferenceOf <ManagedDisposableObject>(obj); Assert.IsTrue(weakref.IsAlive); }
public void VerifyAllChildrenAreDisposedWhenParentIsDisposed() { var parent = new ManagedDisposableObject(); var children = new ManagedDisposableObject[] { new ManagedDisposableObject(), new ManagedDisposableObject(), new ManagedDisposableObject(), new ManagedDisposableObject(), new ManagedDisposableObject(), new ManagedDisposableObject(), }; this.manager.Register(parent); foreach (ManagedDisposableObject child in children) { this.manager.RegisterAsDependent(child, parent); } parent.Dispose(); foreach (ManagedDisposableObject child in children) { Assert.IsTrue(child.WasDisposed); } }
public void VerifyAllChildrenAreDisposedWhenParentIsDisposed() { var parent = new ManagedDisposableObject(); var children = new ManagedDisposableObject[] { new ManagedDisposableObject(), new ManagedDisposableObject(), new ManagedDisposableObject(), new ManagedDisposableObject(), new ManagedDisposableObject(), new ManagedDisposableObject(), }; this.manager.Register(parent); foreach (ManagedDisposableObject child in children) { this.manager.RegisterAsDependent(child, parent); } parent.Dispose(); foreach (ManagedDisposableObject child in children) { Assert.IsTrue(child.WasDisposed); } }
public void VerifyIdReturnsObjectId() { var obj = new ManagedDisposableObject(); var weakref = new WeakReferenceOf <ManagedDisposableObject>(obj); Assert.AreEqual(obj.Id, weakref.Id); }
public void VerifyGarbageCollectionCanGetAllObjects() { var grandparent = new ManagedDisposableObject(); var parent = new ManagedDisposableObject(); var child = new ManagedDisposableObject(); var grandchild = new ManagedDisposableObject(); this.manager.Register(grandparent); this.manager.RegisterAsDependent(parent, grandparent); this.manager.RegisterAsDependent(child, parent); this.manager.RegisterAsDependent(grandchild, child); var grandparentRef = new WeakReference(grandparent); var parentRef = new WeakReference(parent); var childRef = new WeakReference(child); var grandchildRef = new WeakReference(grandchild); grandparent = parent = child = grandchild = null; // Each garbage collection should get at least one level // of the dependency tree TestUtilities.FinalizeAndGCCollect(); Assert.IsFalse(grandchildRef.IsAlive, "grandchild is still alive"); TestUtilities.FinalizeAndGCCollect(); Assert.IsFalse(childRef.IsAlive, "child is still alive"); TestUtilities.FinalizeAndGCCollect(); Assert.IsFalse(parentRef.IsAlive, "parent is still alive"); TestUtilities.FinalizeAndGCCollect(); Assert.IsFalse(grandparentRef.IsAlive, "grandparent is still alive"); }
public void TestDisposeTwice() { var obj = new ManagedDisposableObject(); this.manager.Register(obj); obj.Dispose(); obj.Dispose(); }
public void TestDisposeTwice() { var obj = new ManagedDisposableObject(); this.manager.Register(obj); obj.Dispose(); obj.Dispose(); }
public void VerifyIdReturnsObjectIdWhenObjectIsFinalized() { var obj = new ManagedDisposableObject(); DisposableObjectId id = obj.Id; var weakref = new WeakReferenceOf<ManagedDisposableObject>(obj); obj = null; DoFullGarbageCollection(); Assert.AreEqual(id, weakref.Id); }
public void VerifyIdReturnsObjectIdWhenObjectIsFinalized() { var obj = new ManagedDisposableObject(); DisposableObjectId id = obj.Id; var weakref = new WeakReferenceOf <ManagedDisposableObject>(obj); obj = null; DoFullGarbageCollection(); Assert.AreEqual(id, weakref.Id); }
public void VerifyIdReturnsObjectIdWhenObjectIsFinalized() { var obj = new ManagedDisposableObject(); DisposableObjectId id = obj.Id; var weakref = new WeakReferenceOf<ManagedDisposableObject>(obj); obj = null; GC.WaitForPendingFinalizers(); GC.Collect(); Assert.AreEqual(id, weakref.Id); }
public void VerifyParentIsNotDisposedWhenChildIsDisposed() { var parent = new ManagedDisposableObject(); var child = new ManagedDisposableObject(); this.manager.Register(parent); this.manager.RegisterAsDependent(child, parent); child.Dispose(); Assert.IsFalse(parent.WasDisposed); }
public void VerifyChildObjectIsDisposedWhenParentIsDisposed() { var parent = new ManagedDisposableObject(); var child = new ManagedDisposableObject(); this.manager.Register(parent); this.manager.RegisterAsDependent(child, parent); parent.Dispose(); Assert.IsTrue(child.WasDisposed); }
public void VerifyIdReturnsObjectIdWhenObjectIsFinalized() { var obj = new ManagedDisposableObject(); DisposableObjectId id = obj.Id; var weakref = new WeakReferenceOf <ManagedDisposableObject>(obj); obj = null; GC.WaitForPendingFinalizers(); GC.Collect(); Assert.AreEqual(id, weakref.Id); }
public void VerifyObjectWithNoDependentsCanBeGarbageCollected() { var parent = new ManagedDisposableObject(); var child = new ManagedDisposableObject(); this.manager.Register(parent); this.manager.RegisterAsDependent(child, parent); var weakRef = new WeakReference(child); child = null; TestUtilities.FinalizeAndGCCollect(); Assert.IsFalse(weakRef.IsAlive); }
public void TestDisposingParentWhenSomeChildrenAreUnreferenced() { var parent = new ManagedDisposableObject(); var child = new ManagedDisposableObject(); this.manager.Register(parent); this.manager.RegisterAsDependent(new ManagedDisposableObject(), parent); this.manager.RegisterAsDependent(child, parent); this.manager.RegisterAsDependent(new ManagedDisposableObject(), parent); TestUtilities.FinalizeAndGCCollect(); Assert.IsFalse(child.WasDisposed); parent.Dispose(); Assert.IsTrue(child.WasDisposed); }
public void TestDisposingParentWhenSomeChildrenAreUnreferenced() { var parent = new ManagedDisposableObject(); var child = new ManagedDisposableObject(); this.manager.Register(parent); this.manager.RegisterAsDependent(new ManagedDisposableObject(), parent); this.manager.RegisterAsDependent(child, parent); this.manager.RegisterAsDependent(new ManagedDisposableObject(), parent); TestUtilities.FinalizeAndGCCollect(); Assert.IsFalse(child.WasDisposed); parent.Dispose(); Assert.IsTrue(child.WasDisposed); }
public void VerifyAllObjectAreDisposedWhenManagerIsDisposed() { var manager = new DisposableObjectManager(); var parent = new ManagedDisposableObject(); var child1 = new ManagedDisposableObject(); var child2 = new ManagedDisposableObject(); var child3 = new ManagedDisposableObject(); var grandchild = new ManagedDisposableObject(); manager.Register(parent); manager.RegisterAsDependent(child1, parent); manager.RegisterAsDependent(child2, parent); manager.RegisterAsDependent(child3, parent); manager.RegisterAsDependent(grandchild, child2); manager.Dispose(); Assert.IsTrue(parent.WasDisposed); Assert.IsTrue(child1.WasDisposed); Assert.IsTrue(child2.WasDisposed); Assert.IsTrue(child3.WasDisposed); Assert.IsTrue(grandchild.WasDisposed); }
public void VerifyManagedDisposableObjectConstructorSetsWasDisposedToFalse() { var object1 = new ManagedDisposableObject(); Assert.IsFalse(object1.WasDisposed); }
public void VerifyIsAliveReturnsTrueWhenObjectIsAlive() { var obj = new ManagedDisposableObject(); var weakref = new WeakReferenceOf<ManagedDisposableObject>(obj); Assert.IsTrue(weakref.IsAlive); }
public void VerifyTargetReturnsObjectWhenObjectIsAlive() { var obj = new ManagedDisposableObject(); var weakref = new WeakReferenceOf<ManagedDisposableObject>(obj); Assert.AreEqual(obj, weakref.Target); }
public void VerifyParentIsNotDisposedWhenChildIsDisposed() { var parent = new ManagedDisposableObject(); var child = new ManagedDisposableObject(); this.manager.Register(parent); this.manager.RegisterAsDependent(child, parent); child.Dispose(); Assert.IsFalse(parent.WasDisposed); }
public void VerifyObjectWithNoDependentsCanBeGarbageCollected() { var parent = new ManagedDisposableObject(); var child = new ManagedDisposableObject(); this.manager.Register(parent); this.manager.RegisterAsDependent(child, parent); var weakRef = new WeakReference(child); child = null; TestUtilities.FinalizeAndGCCollect(); Assert.IsFalse(weakRef.IsAlive); }
public void VerifyManagedDisposableObjectDisposeSetsWasDisposedToTrue() { var object1 = new ManagedDisposableObject(); object1.Dispose(); Assert.IsTrue(object1.WasDisposed); }
public void VerifyGarbageCollectionCanGetAllObjects() { var grandparent = new ManagedDisposableObject(); var parent = new ManagedDisposableObject(); var child = new ManagedDisposableObject(); var grandchild = new ManagedDisposableObject(); this.manager.Register(grandparent); this.manager.RegisterAsDependent(parent, grandparent); this.manager.RegisterAsDependent(child, parent); this.manager.RegisterAsDependent(grandchild, child); var grandparentRef = new WeakReference(grandparent); var parentRef = new WeakReference(parent); var childRef = new WeakReference(child); var grandchildRef = new WeakReference(grandchild); grandparent = parent = child = grandchild = null; // Each garbage collection should get at least one level // of the dependency tree TestUtilities.FinalizeAndGCCollect(); Assert.IsFalse(grandchildRef.IsAlive, "grandchild is still alive"); TestUtilities.FinalizeAndGCCollect(); Assert.IsFalse(childRef.IsAlive, "child is still alive"); TestUtilities.FinalizeAndGCCollect(); Assert.IsFalse(parentRef.IsAlive, "parent is still alive"); TestUtilities.FinalizeAndGCCollect(); Assert.IsFalse(grandparentRef.IsAlive, "grandparent is still alive"); }
public void VerifyChildObjectIsDisposedWhenParentIsDisposed() { var parent = new ManagedDisposableObject(); var child = new ManagedDisposableObject(); this.manager.Register(parent); this.manager.RegisterAsDependent(child, parent); parent.Dispose(); Assert.IsTrue(child.WasDisposed); }
public void VerifyManagedDisposableObjectConstructorSetsWasDisposedToFalse() { var object1 = new ManagedDisposableObject(); Assert.IsFalse(object1.WasDisposed); }
public void VerifyAllObjectAreDisposedWhenManagerIsDisposed() { var manager = new DisposableObjectManager(); var parent = new ManagedDisposableObject(); var child1 = new ManagedDisposableObject(); var child2 = new ManagedDisposableObject(); var child3 = new ManagedDisposableObject(); var grandchild = new ManagedDisposableObject(); manager.Register(parent); manager.RegisterAsDependent(child1, parent); manager.RegisterAsDependent(child2, parent); manager.RegisterAsDependent(child3, parent); manager.RegisterAsDependent(grandchild, child2); manager.Dispose(); Assert.IsTrue(parent.WasDisposed); Assert.IsTrue(child1.WasDisposed); Assert.IsTrue(child2.WasDisposed); Assert.IsTrue(child3.WasDisposed); Assert.IsTrue(grandchild.WasDisposed); }
public void VerifyIdReturnsObjectId() { var obj = new ManagedDisposableObject(); var weakref = new WeakReferenceOf<ManagedDisposableObject>(obj); Assert.AreEqual(obj.Id, weakref.Id); }