public IEnumerator PushSameObjPasses() { yield return(null); var pool = new UnityComponentPool <Transform>(new TestInstanceCreator()); var obj = pool.PopOrCreate(); pool.Push(obj); pool.Push(obj); Assert.AreEqual(1, pool.Count); }
public IEnumerator GetOrCreateObjectOrderPasses() { yield return(null); var pool = new UnityComponentPool <Transform>(new TestInstanceCreator()); var objs = Enumerable.Range(0, 5).Select(_ => pool.PopOrCreate()).ToList(); foreach (var o in objs) { pool.Push(o); } while (0 < pool.Count) { var o = pool.PopOrCreate(); Assert.IsTrue(objs.Any(_o => _o == o)); objs.Remove(o); } Assert.AreEqual(0, objs.Count); }
public IEnumerator BasicUsagePasses() { yield return(null); var pool = new UnityComponentPool <Transform>(new TestInstanceCreator()); Assert.AreEqual(0, pool.Count); var obj = pool.PopOrCreate(); Assert.IsNotNull(obj); Assert.AreEqual(0, pool.Count); Assert.IsTrue(obj.gameObject.activeSelf); pool.Push(obj); Assert.AreEqual(1, pool.Count); Assert.IsFalse(obj.gameObject.activeSelf); var obj2 = pool.PopOrCreate(); Assert.AreSame(obj, obj2); Assert.IsTrue(obj2.gameObject.activeSelf); Assert.AreEqual(0, pool.Count); }