public void UnregisterTrackedTypeStopsTracking() { DisposableTracker.RegisterTrackedType(typeof(TestDisposable)); DisposableTracker.RegisterTrackedType(typeof(ReferenceCounted)); using (var t = new TestDisposable()) using (var t2 = new ReferenceCounted()) { //Confirm both items tracked int trackedItems = 0; DisposableTracker.EnumerateTrackedInstances((td) => trackedItems++); Assert.AreEqual(2, trackedItems); trackedItems = 0; //Remove one type, and check only one instance being tracked DisposableTracker.UnregisterTrackedType(typeof(TestDisposable)); DisposableTracker.EnumerateTrackedInstances((td) => trackedItems++); Assert.AreEqual(1, trackedItems); trackedItems = 0; //Create another instance of the type NOT being tracked //and ensure still only one tracked instance. using (var t3 = new TestDisposable()) { DisposableTracker.EnumerateTrackedInstances((td) => trackedItems++); Assert.AreEqual(1, trackedItems); } } }
public void UnregisterTrackedTypeThrowsOnNull() { DisposableTracker.UnregisterTrackedType(null); }