Exemple #1
0
        public void Acquire_should_throw_exception_when_pool_is_disposed()
        {
            var pool = new UnlimitedLazyPool <object>(() => new object());

            pool.Dispose();

            Action acquire = () => pool.Acquire();

            acquire.ShouldThrow <ObjectDisposedException>();
        }
Exemple #2
0
        public void Dispose_should_clear_pool_when_pool_is_not_empty()
        {
            var pool       = new UnlimitedLazyPool <object>(() => new object());
            var poolObject = pool.Acquire();

            pool.Release(poolObject);

            pool.Dispose();

            pool.Available.Should().Be(0);
            pool.Allocated.Should().Be(0);
        }
Exemple #3
0
        public void Dispose_should_dispose_resources_when_resources_is_disposable()
        {
            var pool    = new UnlimitedLazyPool <DisposableObject>(() => new DisposableObject());
            var object1 = pool.Acquire();

            object1.IsDisposed.Should().BeFalse();
            pool.Release(object1);

            var object2 = pool.Acquire();

            object2.IsDisposed.Should().BeFalse();
            pool.Release(object2);

            pool.Dispose();

            object1.IsDisposed.Should().BeTrue();
            object2.IsDisposed.Should().BeTrue();
        }