예제 #1
0
        public IEnumerator TestRemove()
        {
            var cacher = new DummyCacher();

            var listener  = cacher.Request("AA");
            var listener2 = cacher.Request("BB");
            var listener3 = cacher.Request("CC");

            Assert.IsFalse(cacher.IsCached("AA"));
            Assert.IsFalse(cacher.IsCached("BB"));
            Assert.IsFalse(cacher.IsCached("CC"));

            yield return(new WaitForSeconds(0.5f));

            cacher.Remove(listener);

            yield return(new WaitForSeconds(2f));

            Assert.IsFalse(cacher.IsCached("AA"));
            Assert.IsTrue(cacher.IsCached("BB"));
            Assert.IsTrue(cacher.IsCached("CC"));
            Assert.IsNotNull(listener2.Value);
            Assert.IsNotNull(listener3.Value);

            var value2 = listener2.Value;
            var value3 = listener3.Value;

            Assert.AreEqual("BB", value2.Key);
            Assert.AreEqual("CC", value3.Key);
            Assert.IsFalse(value2.IsDestroyed);
            Assert.IsFalse(value3.IsDestroyed);

            cacher.Remove(listener2);
            Assert.IsFalse(cacher.IsCached("BB"));
            Assert.IsTrue(value2.IsDestroyed);

            cacher.RemoveDelayed(listener3, 1f);
            Assert.IsTrue(cacher.IsCached("CC"));
            Assert.IsFalse(value3.IsDestroyed);

            yield return(new WaitForSeconds(0.5f));

            Assert.IsTrue(cacher.IsCached("CC"));
            Assert.IsFalse(value3.IsDestroyed);
            yield return(new WaitForSeconds(1.5f));

            Assert.IsFalse(cacher.IsCached("CC"));
            Assert.IsTrue(value3.IsDestroyed);
        }
예제 #2
0
        public IEnumerator TestDataLockCached()
        {
            var cacher    = new DummyCacher();
            var listeners = new CacheListener <DummyCacherData> [3];

            for (int i = 0; i < listeners.Length; i++)
            {
                listeners[i] = cacher.Request("a");
            }

            yield return(new WaitForSeconds(1.5f));

            Assert.IsTrue(cacher.IsCached("a"));

            for (int i = 0; i < listeners.Length - 1; i++)
            {
                cacher.Remove(listeners[i]);
            }
            Assert.IsTrue(cacher.IsCached("a"));
            cacher.Remove(listeners[2]);
            Assert.IsFalse(cacher.IsCached("a"));
            Assert.IsTrue(listeners[listeners.Length - 1].Value.IsDestroyed);
        }