Example #1
0
        public async Task GetSetItem()
        {
            var cache = new Yanyitec.Caches.MemCache(2000, 1000);
            //添加一个缓存
            cache["user"] = "******";
            //200毫秒后,不应该消失
            await Task.Delay(200);
            var username = cache["user"];
            Assert.Equal("yiy", username);

            DateTime t0 = DateTime.Now;
            var item = cache.GetItem("user");
            DateTime removeTime = DateTime.MinValue;
            CacheItem removedItem = null;
            item.Removed += (removed) => { removeTime = DateTime.Now; removedItem = removed; };
            Assert.NotNull(item);
            Assert.Equal("user", item.Name);
            //最后访问时间应该比上次的时间大,比现在小
            var accessTime = item.LastAccessTime;
            Assert.True(accessTime >= t0);
            Assert.True(accessTime <= DateTime.Now);
            Assert.Equal("yiy", item.Value.ToString());
            DateTime t1 = DateTime.Now;
            //3000毫秒后,应该消失
            await Task.Delay(3000);
            //应该触发了remove事件
            Assert.NotNull(removedItem);
            Assert.Equal(item, removedItem);

            ////移除时间应该在访问之后
            Assert.True(removeTime > t1);

            username = cache["user"];
            Assert.Null(username);
        }
Example #2
0
        public async Task GetSetSub()
        {
            var cache = new Yanyitec.Caches.MemCache(2000, 1000);
            //添加一个缓存
            var sub = cache.GetOrCreateSubCache("sub");
            sub["name"] = "yiy";
            await Task.Delay(200);
            var name = sub["name"];
            Assert.Equal("yiy", name);

            await Task.Delay(3000);
            name = sub["name"];

            Assert.Null(name);
        }