public void ShouldHandleClearAfterNoUsage() { var pool = new ParameterizedObjectPool <int, MyPooledObject>(); pool.Clear(); Assert.That(0, Is.EqualTo(pool.KeysInPoolCount)); }
public void ShouldChangePoolLimitsIfCorrect() { var pool = new ParameterizedObjectPool <int, MyPooledObject>(); Assert.AreEqual(ObjectPool.DefaultPoolMaximumSize, pool.MaximumPoolSize); pool.MaximumPoolSize = pool.MaximumPoolSize * 2; Assert.AreEqual(ObjectPool.DefaultPoolMaximumSize * 2, pool.MaximumPoolSize); pool.MaximumPoolSize = 2; Assert.AreEqual(2, pool.MaximumPoolSize); }
public void ShouldHandleClearAfterSomeUsage() { var pool = new ParameterizedObjectPool <int, MyPooledObject>(); using (var obj = pool.GetObject(1)) { } pool.Clear(); Assert.That(0, Is.EqualTo(pool.KeysInPoolCount)); }
public void ShouldHandleClearAndThenPoolCanBeUsedAgain() { var pool = new ParameterizedObjectPool <int, MyPooledObject>(); using (var obj = pool.GetObject(1)) { } pool.Clear(); using (var obj = pool.GetObject(1)) { } Assert.That(1, Is.EqualTo(pool.KeysInPoolCount)); }
public async Task ShouldSimplyWork(int maxSize) { const int keyCount = 4; var pool = new ParameterizedObjectPool <int, MyPooledObject>(maxSize); var objectCount = maxSize * keyCount; var objects = new MyPooledObject[objectCount]; Parallel.For(0, objectCount, i => { objects[i] = pool.GetObject(i % keyCount); }); Parallel.For(0, objectCount, i => { objects[i].Dispose(); }); await Task.Delay(1000); Assert.AreEqual(keyCount, pool.KeysInPoolCount); }
public async Task ShouldSimplyWork(int maxSize) { const int keyCount = 4; var pool = new ParameterizedObjectPool<int, MyPooledObject>(0, maxSize); var objectCount = maxSize * keyCount; var objects = new MyPooledObject[objectCount]; Parallel.For(0, objectCount, i => { objects[i] = pool.GetObject(i % keyCount); }); Parallel.For(0, objectCount, i => { objects[i].Dispose(); }); #if !NET40 await Task.Delay(1000); #else await TaskEx.Delay(1000); #endif Assert.AreEqual(keyCount, pool.KeysInPoolCount); }
public void ShouldHandleClearAndThenPoolCanBeUsedAgain() { var pool = new ParameterizedObjectPool<int, MyPooledObject>(); using (var obj = pool.GetObject(1)) { } pool.Clear(); using (var obj = pool.GetObject(1)) { } Assert.That(1, Is.EqualTo(pool.KeysInPoolCount)); }
public void ShouldHandleClearAfterSomeUsage() { var pool = new ParameterizedObjectPool<int, MyPooledObject>(); using (var obj = pool.GetObject(1)) { } pool.Clear(); Assert.That(0, Is.EqualTo(pool.KeysInPoolCount)); }
public void ShouldHandleClearAfterNoUsage() { var pool = new ParameterizedObjectPool<int, MyPooledObject>(); pool.Clear(); Assert.That(0, Is.EqualTo(pool.KeysInPoolCount)); }
public void ShouldChangePoolLimitsIfCorrect() { var pool = new ParameterizedObjectPool<int, MyPooledObject>(); Assert.AreEqual(ObjectPoolConstants.DefaultPoolMinimumSize, pool.MinimumPoolSize); Assert.AreEqual(ObjectPoolConstants.DefaultPoolMaximumSize, pool.MaximumPoolSize); pool.MinimumPoolSize = pool.MaximumPoolSize - 5; Assert.AreEqual(ObjectPoolConstants.DefaultPoolMaximumSize - 5, pool.MinimumPoolSize); Assert.AreEqual(ObjectPoolConstants.DefaultPoolMaximumSize, pool.MaximumPoolSize); pool.MaximumPoolSize = pool.MaximumPoolSize * 2; Assert.AreEqual(ObjectPoolConstants.DefaultPoolMaximumSize - 5, pool.MinimumPoolSize); Assert.AreEqual(ObjectPoolConstants.DefaultPoolMaximumSize * 2, pool.MaximumPoolSize); pool.MinimumPoolSize = 1; Assert.AreEqual(1, pool.MinimumPoolSize); Assert.AreEqual(ObjectPoolConstants.DefaultPoolMaximumSize * 2, pool.MaximumPoolSize); pool.MaximumPoolSize = 2; Assert.AreEqual(1, pool.MinimumPoolSize); Assert.AreEqual(2, pool.MaximumPoolSize); }