public void CanAddAndUpdate() { var cache = new MemoryCache <string, string>(); var values = new List <Common.Caching.Abstract.KeyValuePair <string, string> >(); cache["key::10"] = "abc"; cache["key::50"] = "def"; cache["key::55"] = "duf"; Assert.AreEqual("abc", cache["key::10"]); Assert.AreEqual("def", cache["key::50"]); Assert.AreEqual("duf", cache["key::55"]); for (var idx = 0; idx < 100; idx++) { var kvp = new Common.Caching.Abstract.KeyValuePair <string, string> { Key = $"key::{idx}", Value = $"value::{idx}" }; values.Add(kvp); } cache.AddOrUpdate(values); Assert.AreEqual("value::10", cache["key::10"]); Assert.AreEqual("value::50", cache["key::50"]); Assert.AreEqual("value::55", cache["key::55"]); }
public void CannotMassUpdate() { var cache = new MemoryCache <string, string>(); var values = new List <Common.Caching.Abstract.KeyValuePair <string, string> >(); cache["key::10"] = "abc"; cache["key::50"] = "def"; cache["key::55"] = "duf"; Assert.AreEqual("abc", cache["key::10"]); Assert.AreEqual("def", cache["key::50"]); Assert.AreEqual("duf", cache["key::55"]); for (var idx = 0; idx < 100; idx++) { var kvp = new Common.Caching.Abstract.KeyValuePair <string, string> { Key = $"key::{idx}", Value = $"value::{idx}" }; values.Add(kvp); } Assert.ThrowsException <ArgumentOutOfRangeException>(() => cache.Add(values)); }
public void CanAddMultipleKVPairs() { var cache = new MemoryCache <string, string>(); var values = new List <Common.Caching.Abstract.KeyValuePair <string, string> >(); for (var idx = 0; idx < 100; idx++) { var kvp = new Common.Caching.Abstract.KeyValuePair <string, string> { Key = $"key::{idx}", Value = $"value::{idx}" }; values.Add(kvp); } cache.Add(values); Assert.AreEqual("value::50", cache["key::50"]); }
private static IMemoryCache <string, string> GenerateCache() { var cache = new MemoryCache <string, string>(150); var values = new List <Common.Caching.Abstract.KeyValuePair <string, string> >(); var options = new CacheEntryOptions { Size = 1 }; for (var idx = 0; idx < 100; idx++) { var kvp = new Common.Caching.Abstract.KeyValuePair <string, string> { Key = $"key::{idx}", Value = $"value::{idx}" }; values.Add(kvp); } cache.Add(values, options); return(cache); }
public void CanMassTimeout() { var cache = new MemoryCache <string, string>(); var values = new List <Common.Caching.Abstract.KeyValuePair <string, string> >(); var options = new CacheEntryOptions { Timeout = TimeSpan.FromMilliseconds(50) }; for (var idx = 0; idx < 100; idx++) { var kvp = new Common.Caching.Abstract.KeyValuePair <string, string> { Key = $"key::{idx}", Value = $"value::{idx}" }; values.Add(kvp); } cache.AddOrUpdate(values, options); Assert.AreEqual("value::50", cache["key::50"]); Thread.Sleep(51); Assert.ThrowsException <KeyNotFoundException>(() => cache["key::50"]); }