Example #1
0
        public static void PoolCleanDoesRemoveAvailableInstances(int spawnCount, int deactivateCount)
        {
            IPool pool = new DemoPool();
            List <DemoPooledObjectInstance> _instances = new List <DemoPooledObjectInstance>();

            // Spawn instances
            for (int i = 0; i < spawnCount; i++)
            {
                _instances.Add((DemoPooledObjectInstance)pool.GetNext());
            }

            // Deactivate instances
            for (int i = 0; i < Math.Min(deactivateCount, _instances.Count); i++)
            {
                _instances[i].RelenquishFromInstance();
            }

            // Clean pool
            pool.Clean();

            Assert.AreEqual(Math.Max(spawnCount - deactivateCount, 0), pool.instanceCount,
                            "Pool cleaning does not remove unused instances as expected!");
        }