public void DisposingContainerDisposesOwnedObjects() { ILifetimeContainer container = new LifetimeContainer(); MockDisposableObject mdo = new MockDisposableObject(); container.Add(mdo); container.Dispose(); Assert.IsTrue(mdo.WasDisposed); }
public void RemovingItemsFromContainerDoesNotDisposeThem() { ILifetimeContainer container = new LifetimeContainer(); MockDisposableObject mdo = new MockDisposableObject(); container.Add(mdo); container.Remove(mdo); container.Dispose(); Assert.IsFalse(mdo.WasDisposed); }
public void DisposingItemsFromContainerDisposesInReverseOrderAdded() { ILifetimeContainer container = new LifetimeContainer(); DisposeOrderCounter obj1 = new DisposeOrderCounter(); DisposeOrderCounter obj2 = new DisposeOrderCounter(); DisposeOrderCounter obj3 = new DisposeOrderCounter(); container.Add(obj1); container.Add(obj2); container.Add(obj3); container.Dispose(); Assert.AreEqual(1, obj3.DisposePosition); Assert.AreEqual(2, obj2.DisposePosition); Assert.AreEqual(3, obj1.DisposePosition); }