public void Clear_DestroysAllObjects() { // setup PPocoPool.Clear <TestClass>(); // arrange int count = 9; // act PPocoPool.Prewarm <TestClass>(count); PPocoPool.Clear <TestClass>(); int total = PPocoPool.GetAvailable <TestClass>() + PPocoPool.GetInUse <TestClass>(); // assert Assert.AreEqual(0, total, "Pool contains objects"); }
public void SetNoStaleDuration_RemovesTimestamps() { // setup PPocoPool.Clear <TestClass>(); // arrange float duration = 1; // seconds PPocoPool.SetLimit <TestClass>(staleDuration: duration); int count = 9; // act PPocoPool.Prewarm <TestClass>(count); PPocoPool.SetLimit <TestClass>(staleDuration: PPocoPool.UNLIMITED); Delay(duration + 0.1f); int available = PPocoPool.GetAvailable <TestClass>(); // assert Assert.AreEqual(count, available, "Wrong number available"); }
public void Prewarm_CreatesObjects() { // setup PPocoPool.Clear <TestClass>(); // arrange int count = 9; float duration = 7; // seconds // act PPocoPool.Prewarm <TestClass>(count, duration); Delay(duration * 0.5f); int initial = PPocoPool.GetAvailable <TestClass>(); Delay(duration); int complete = PPocoPool.GetAvailable <TestClass>(); // assert Assert.IsTrue(initial < count, "Partial generaton contains too many objects"); Assert.AreEqual(count, complete, "Complete generation contains wrong number of objects"); }
public void Expire_ReducesObjectCount() { // setup PPocoPool.Clear <TestClass>(); // arrange float longStale = 9; float shortStale = 1; int count = 7; PPocoPool.SetLimit <TestClass>(staleDuration: longStale); PPocoPool.Prewarm <TestClass>(count, duration: 0); // act PPocoPool.SetLimit <TestClass>(staleDuration: shortStale); Delay(shortStale + 0.1f); PPocoPool.Expire <TestClass>(); int available = PPocoPool.GetAvailable <TestClass>(); // assert Assert.AreEqual(0, available, "Pool did not expire unused objects"); }
public void SetNoQuantityLimit_RemovesLimit() { // setup PPocoPool.Clear <TestClass>(); // arrange int count = 9; int limit = count - 1; List <TestClass> list = new List <TestClass>(); // act PPocoPool.SetLimit <TestClass>(poolSize: limit); PPocoPool.Prewarm <TestClass>(count); int countWhileLimited = PPocoPool.GetAvailable <TestClass>(); PPocoPool.SetLimit <TestClass>(poolSize: PPool.UNLIMITED); PPocoPool.Prewarm <TestClass>(count); int countUnlimited = PPocoPool.GetAvailable <TestClass>(); // assert Assert.AreEqual(limit, countWhileLimited, "Object creation not correctly limited"); Assert.AreEqual(count, countUnlimited, "Unlimited object creation count incorrect"); }