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>(); }
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); }
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(); }