public void GetOrCreateWithslidingExpiration() { var key = Guid.NewGuid().ToString(); var val = Guid.NewGuid(); IHttpRuntimeCacheProvider cacheProvider = CacheProviderFactory.GetHttpRuntimeCache(); var result = cacheProvider.GetOrCreate <Guid>(key, () => val, TimeSpan.FromSeconds(1.5D)); Assert.AreEqual(result, val); { Thread.Sleep(1000); var exist = cacheProvider.TryGet <Guid>(key, out val); Assert.IsTrue(exist); Assert.AreEqual(result, val); } { Thread.Sleep(1000); var exist = cacheProvider.TryGet <Guid>(key, out val); Assert.IsTrue(exist); Assert.AreEqual(result, val); } { Thread.Sleep(2000); var exist = cacheProvider.TryGet <Guid>(key, out val); Assert.IsFalse(exist); Assert.AreEqual(val, Guid.Empty); } }
public void ExpireAll() { var key = Guid.NewGuid().ToString(); //region a 创建 key->val1 IHttpRuntimeCacheProvider cacheProvider1 = CacheProviderFactory.GetHttpRuntimeCache("e"); cacheProvider1.GetOrCreate <Guid>(key, k => Guid.NewGuid()); //reigon b 创建 key-val2 IHttpRuntimeCacheProvider cacheProvider2 = CacheProviderFactory.GetHttpRuntimeCache("f"); cacheProvider2.GetOrCreate <Guid>(key, k => Guid.NewGuid()); //region a 过期全部, 确认 region b 未被过期 ((HttpRuntimeCacheProvider)cacheProvider1).ExpireAll(); Guid val1; var exist = cacheProvider1.TryGet <Guid>(key, out val1); Assert.IsFalse(exist); Assert.AreEqual(val1, Guid.Empty); Guid val2; var exist2 = cacheProvider2.TryGet <Guid>(key, out val2); Assert.IsTrue(exist2); }
public void Duplicate2() { var key = Guid.NewGuid().ToString(); //region a 创建 key->val1 IHttpRuntimeCacheProvider cacheProvider1 = CacheProviderFactory.GetHttpRuntimeCache("c"); cacheProvider1.GetOrCreate <Guid>(key, k => Guid.NewGuid()); Assert.IsTrue(((HttpRuntimeCacheProvider)cacheProvider1).Count() == 1); //reigon b 创建 key-val2 IHttpRuntimeCacheProvider cacheProvider2 = CacheProviderFactory.GetHttpRuntimeCache("d"); cacheProvider2.GetOrCreate <Guid>(key, k => Guid.NewGuid()); Assert.IsTrue(((HttpRuntimeCacheProvider)cacheProvider2).Count() == 1); //确认reigon a 键 key 与 region b 键 key 对应值不同 Guid val1; var exist1 = cacheProvider1.TryGet <Guid>(key, out val1); Assert.IsTrue(exist1); Guid val2; var exist2 = cacheProvider2.TryGet <Guid>(key, out val2); Assert.IsTrue(exist2); Assert.AreNotEqual(val1, val2); }
public void TryGet() { var key = Guid.NewGuid().ToString(); Guid val; IHttpRuntimeCacheProvider cacheProvider = CacheProviderFactory.GetHttpRuntimeCache(); var exist = cacheProvider.TryGet <Guid>(key, out val); Assert.IsFalse(exist); Assert.AreEqual(val, Guid.Empty); }
public void Expire() { var key = Guid.NewGuid().ToString(); var val = Guid.NewGuid(); IHttpRuntimeCacheProvider cacheProvider = CacheProviderFactory.GetHttpRuntimeCache(); var result = cacheProvider.GetOrCreate <Guid>(key, () => val); Assert.AreEqual(result, val); cacheProvider.Expire(key); Guid val2; var exist = cacheProvider.TryGet <Guid>(key, out val2); Assert.IsFalse(exist); Assert.AreEqual(val2, Guid.Empty); }
public void GetOrCreateWithAbsoluteExpiration() { var key = Guid.NewGuid().ToString(); var val = Guid.NewGuid(); IHttpRuntimeCacheProvider cacheProvider = CacheProviderFactory.GetHttpRuntimeCache(); var result = cacheProvider.GetOrCreate <Guid>(key, () => val, DateTime.UtcNow.AddSeconds(2D)); Assert.AreEqual(result, val); var exist = cacheProvider.TryGet <Guid>(key, out val); Assert.IsTrue(exist); Assert.AreEqual(result, val); Thread.Sleep(2000); exist = cacheProvider.TryGet <Guid>(key, out val); Assert.IsFalse(exist); Assert.AreEqual(val, Guid.Empty); }
public void Overwrite() { var key = Guid.NewGuid().ToString(); var val = Guid.NewGuid(); IHttpRuntimeCacheProvider cacheProvider = CacheProviderFactory.GetHttpRuntimeCache(); var result = cacheProvider.GetOrCreate <Guid>(key, () => val); Assert.AreEqual(result, val); var val2 = Guid.NewGuid(); cacheProvider.Overwrite <Guid>(key, val2); Guid val3; var exist = cacheProvider.TryGet <Guid>(key, out val3); Assert.IsTrue(exist); Assert.AreEqual(val3, val2); }
public void GetOrCreate() { var key = Guid.NewGuid().ToString(); var val = Guid.NewGuid(); IHttpRuntimeCacheProvider cacheProvider = CacheProviderFactory.GetHttpRuntimeCache(); var result = cacheProvider.GetOrCreate <Guid>(key, () => val); Assert.AreEqual(result, val); { var exist = cacheProvider.TryGet <Guid>(key, out val); Assert.IsTrue(exist); Assert.AreEqual(result, val); } { var result2 = cacheProvider.GetOrCreate <Guid>(key, () => { Assert.Fail(); return(Guid.NewGuid()); }); Assert.AreEqual(result2, val); } }