public void CacheCanCloseItemsEarly() { var resourceStore = new ResourceStore <string, Disposable>(name => new Disposable(name)); Disposable item1 = null; Disposable item2 = null; resourceStore.Access("foo", it => item1 = it); resourceStore.Access("bar", it => item2 = it); Assert.AreEqual(0, item1.DisposeCallCount); Assert.AreEqual(0, item2.DisposeCallCount); resourceStore.Close("foo"); Assert.AreEqual(1, item1.DisposeCallCount); Assert.AreEqual(0, item2.DisposeCallCount); Assert.Throws <ObjectDisposedException>(() => resourceStore.Access("foo", it => { })); resourceStore.Dispose(); Assert.AreEqual(1, item1.DisposeCallCount); Assert.AreEqual(1, item2.DisposeCallCount); }
public void CacheCanCloseBeforeGet() { var resourceStore = new ResourceStore<string, Disposable>(name => new Disposable(name)); resourceStore.Close("foo"); Assert.Throws<ObjectDisposedException>(() => resourceStore.Access("foo", it => { })); }
public void CacheCanCloseBeforeGet() { var resourceStore = new ResourceStore <string, Disposable>(name => new Disposable(name)); resourceStore.Close("foo"); Assert.Throws <ObjectDisposedException>(() => resourceStore.Access("foo", it => { })); }
public void CacheCanCloseItemsEarly() { var resourceStore = new ResourceStore<string, Disposable>(name => new Disposable(name)); Disposable item1 = null; Disposable item2 = null; resourceStore.Access("foo", it => item1 = it); resourceStore.Access("bar", it => item2 = it); Assert.AreEqual(0, item1.DisposeCallCount); Assert.AreEqual(0, item2.DisposeCallCount); resourceStore.Close("foo"); Assert.AreEqual(1, item1.DisposeCallCount); Assert.AreEqual(0, item2.DisposeCallCount); Assert.Throws<ObjectDisposedException>(() => resourceStore.Access("foo", it => { })); resourceStore.Dispose(); Assert.AreEqual(1, item1.DisposeCallCount); Assert.AreEqual(1, item2.DisposeCallCount); }