public void TestCacheWithExpiryPolicyOnUpdate() { const int val = 4; var expiryPolicy = new ExpiryPolicy(null, TimeSpan.FromMilliseconds(100), null); var cache = GetClientCache <int>(); var cacheWithExpiryPolicy = cache.WithExpiryPolicy(expiryPolicy); cacheWithExpiryPolicy.Put(val, val); Assert.IsTrue(cacheWithExpiryPolicy.ContainsKey(val)); Assert.IsTrue(cache.ContainsKey(val)); Thread.Sleep(50); Assert.IsTrue(cacheWithExpiryPolicy.ContainsKey(val)); Assert.IsTrue(cache.ContainsKey(val)); cacheWithExpiryPolicy.Put(val, val + 1); Thread.Sleep(70); Assert.IsTrue(cacheWithExpiryPolicy.ContainsKey(val)); Assert.IsTrue(cache.ContainsKey(val)); Thread.Sleep(50); // Expiry policies should be applied, no cache item exists. Assert.IsFalse(cacheWithExpiryPolicy.ContainsKey(val)); Assert.IsFalse(cache.ContainsKey(val)); }
public void TestCreateFromConfigurationWithExpiration() { var expiryPolicy = new ExpiryPolicy( TimeSpan.FromMilliseconds(20), TimeSpan.FromMilliseconds(10), TimeSpan.FromMilliseconds(30)); // Default config. var cfg = new CacheClientConfiguration("a") { ExpiryPolicyFactory = new ExpiryPolicyFactory(expiryPolicy) }; var cache = Client.CreateCache <int, int>(cfg); AssertExtensions.ReflectionEqual(cfg, cache.GetConfiguration()); var remoteExpiryPolicy = cache.GetConfiguration().ExpiryPolicyFactory.CreateInstance(); AssertExtensions.ReflectionEqual(expiryPolicy, remoteExpiryPolicy); cache.Put(1, 1); // Wait for expiration period. Thread.Sleep(100); Assert.IsFalse(cache.ContainsKey(1)); }
public void TestCacheWithKeepBinaryDoesNotAffectExpirationPolicy() { const int key = 11; var person = new Person(1); var expiryPolicy = new ExpiryPolicy(null, null, TimeSpan.FromMilliseconds(100)); var cacheWithExpiryPolicy = GetClientCache<Person>().WithExpiryPolicy(expiryPolicy); cacheWithExpiryPolicy.Put(key, person); var cacheWithKeepBinary = cacheWithExpiryPolicy.WithKeepBinary<int, IBinaryObject>(); AssertExtensions.ReflectionEqual(person, cacheWithKeepBinary.Get(key).Deserialize<Person>()); Thread.Sleep(200); Assert.IsFalse(cacheWithKeepBinary.ContainsKey(key)); Assert.IsFalse(cacheWithExpiryPolicy.ContainsKey(key)); }
public void TestCacheWithExpiryPolicyOnCreate() { const int val = 3; var expiryPolicy = new ExpiryPolicy(TimeSpan.FromMilliseconds(100), null, null); var cache = GetClientCache <int>(); var cacheWithExpiryPolicy = cache.WithExpiryPolicy(expiryPolicy); cacheWithExpiryPolicy.Put(val, val); // Initially added value is the same. Assert.IsTrue(cacheWithExpiryPolicy.ContainsKey(val)); Assert.IsTrue(cache.ContainsKey(val)); // Wait for an expiration. Thread.Sleep(200); // Expiry policies should be applied, no cache item exists. Assert.IsFalse(cacheWithExpiryPolicy.ContainsKey(val)); Assert.IsFalse(cache.ContainsKey(val)); }
public void TestCacheWithExpirationHasIsolatedScope() { const int val = 7; var expiryPolicy = new ExpiryPolicy(TimeSpan.FromMilliseconds(100), null, null); var cache = GetClientCache <int>(); var cacheWithExpiryPolicy = cache.WithExpiryPolicy(expiryPolicy); cache.Put(val, val); cacheWithExpiryPolicy.Put(val + 1, val); Thread.Sleep(200); // Both caches contains the original value. Assert.IsTrue(cache.ContainsKey(val)); Assert.IsTrue(cacheWithExpiryPolicy.ContainsKey(val)); // New value is being absent for both caches. Assert.IsFalse(cache.ContainsKey(val + 1)); Assert.IsFalse(cacheWithExpiryPolicy.ContainsKey(val + 1)); }