public void TestElementDestroyedAfterDispose() { RentedElementMonitor <TestPoolElem> elementMonitor = default(RentedElementMonitor <TestPoolElem>); TestPoolElem elem = null; try { using (TestDynamicPool testInst = new TestDynamicPool(0, 10)) { elementMonitor = testInst.Rent(); elem = elementMonitor.Element; } Assert.IsTrue(elementMonitor.IsValid); Assert.IsFalse(elem.IsDestroyed); } finally { if (!object.ReferenceEquals(elementMonitor, null)) { elementMonitor.Dispose(); } } Assert.IsTrue(elem.IsDestroyed); }
public void TestFaultedElementDestroyed() { using (TestDynamicPool testInst = new TestDynamicPool(0, 10)) { Assert.AreEqual(0, testInst.ElementCount); Assert.AreEqual(0, testInst.FreeElementCount); TestPoolElem rentedEl = null; using (var el = testInst.Rent()) { Assert.IsTrue(el.IsValid); rentedEl = el.Element; rentedEl.MakeInvalid(); } Assert.IsTrue(rentedEl.IsDestroyed); } }