public void Set_then_flush()
        {
            var cache = new MemoryCacheProvider("region7");

            cache.Overwrite("id", 21685);
            cache.Overwrite("begin", DateTime.Now);
            var file1 = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "cache1.db");

            cache.Flush(file1, _ => true);

            cache = new MemoryCacheProvider("User");
            cache.Overwrite("13", new User {
                Id = 13, Name = "Rattz", Age = 20, Address = new[] { "Beijing", "Wuhan" }
            });
            cache.Overwrite("14", new User {
                Id = 14, Name = "Kate", Age = 18, Address = new[] { "Tokyo", "Los Angeles" }
            });
            var file2 = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "cache2.db");

            cache.Flush(file2, _ => true);

            cache = new MemoryCacheProvider("Job");
            cache.Overwrite("52", new { Id = 52, Title = "Software Engineer", Salary = 10000 });
            cache.Overwrite("100", new { Id = 100, Title = "Gwhilsttroenterologist", Salary = 12000 });
            var file3 = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "cache3.db");

            cache.Flush(file3, _ => true);
        }
        public void Set_with_slidingExpiration_then_get()
        {
            var key   = Guid.NewGuid().ToString();
            var value = Guid.NewGuid();

            ICacheProvider cache = new MemoryCacheProvider("region4");

            cache.Overwrite(key, value, TimeSpan.FromSeconds(3D));

            {
                Guid value2;
                Thread.Sleep(2000);
                var exist = cache.TryGet <Guid>(key, out value2);
                Assert.IsTrue(exist);
                Assert.AreEqual(value2, value);
            }
            {
                Guid value2;
                Thread.Sleep(2000);
                var exist = cache.TryGet(key, out value2);
                Assert.IsTrue(exist);
                Assert.AreEqual(value2, value);
            }
            {
                Guid value2;
                Thread.Sleep(4000);
                var exist = cache.TryGet(key, out value2);
                Assert.IsFalse(exist);
            }
        }
        public void Set_then_expire()
        {
            var key   = Guid.NewGuid().ToString();
            var value = Guid.NewGuid();

            var cache = new MemoryCacheProvider("region6");

            cache.Overwrite(key, value);

            cache.Expire(key);
            Guid value2;
            var  exist = cache.TryGet(key, out value2);

            Assert.IsFalse(exist);
            Assert.AreEqual(value2, Guid.Empty);

            cache.ExpireAll();
            Assert.AreEqual(cache.Count(), 0);
        }
        public void Set_with_absoluteExpiration_then_get()
        {
            var key   = Guid.NewGuid().ToString();
            var value = Guid.NewGuid();

            ICacheProvider cache = new MemoryCacheProvider();

            cache.Overwrite(key, value, DateTime.Now.AddSeconds(3D));

            {
                Guid value2;
                Thread.Sleep(2000);
                var exist = cache.TryGet <Guid>(key, out value2);
                Assert.IsTrue(exist);
                Assert.AreEqual(value2, value);
            }
            {
                Guid value2;
                Thread.Sleep(2000);
                var exist = cache.TryGet(key, out value2);
                Assert.IsFalse(exist);
            }
        }