Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public void CacheCanCloseBeforeGet()
        {
            var resourceStore = new ResourceStore<string, Disposable>(name => new Disposable(name));

            resourceStore.Close("foo");

            Assert.Throws<ObjectDisposedException>(() => resourceStore.Access("foo", it => { }));
        }
Ejemplo n.º 3
0
        public void CacheCanCloseBeforeGet()
        {
            var resourceStore = new ResourceStore <string, Disposable>(name => new Disposable(name));

            resourceStore.Close("foo");

            Assert.Throws <ObjectDisposedException>(() => resourceStore.Access("foo", it => { }));
        }
Ejemplo n.º 4
0
        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);
        }