public void DictionaryAutoExpiresItems() { using (var dictionary = new ExpirableItemDictionary <string, object>()) { dictionary.DefaultTimeToLive = TimeSpan.FromMilliseconds(50); dictionary.AutoClearExpiredItemsFrequency = TimeSpan.FromMilliseconds(150); string key = "a"; object value = "b"; dictionary[key] = value; object sender = null; string eventKey = null; object eventValue = null; dictionary.ItemExpired += (s, e) => { sender = s; eventKey = e.Key; eventValue = e.Value; }; Thread.Sleep(351); Assert.AreSame(sender, dictionary); Assert.AreEqual(eventKey, key); Assert.AreEqual(eventValue, value); } }
public void DictionaryRaisesExpirationEvent() { var dict = new ExpirableItemDictionary <string, object>(TimeSpan.FromMilliseconds(50)); string key = "a"; object value = 1; dict[key] = value; object sender = null; string eventKey = null; object eventValue = null; dict.ItemExpired += (s, e) => { sender = s; eventKey = e.Key; eventValue = e.Value; }; Thread.Sleep(51); dict.RemoveExpiredItems(); Assert.AreSame(sender, dict); Assert.AreEqual(eventKey, key); Assert.AreEqual(eventValue, value); }
public void DictionaryDoesNotExpiredNonStaleItems() { using (var dictionary = new ExpirableItemDictionary <string, object>()) { dictionary.DefaultTimeToLive = TimeSpan.FromMilliseconds(50); dictionary.Add("a", "b"); Assert.IsTrue(dictionary.ContainsKey("a")); } }
public void DictionaryExpiresStaleItems() { using (var dictionary = new ExpirableItemDictionary <string, object>()) { dictionary.DefaultTimeToLive = TimeSpan.FromMilliseconds(50); dictionary.Add("a", "b"); Thread.Sleep(51); Assert.IsFalse(dictionary.ContainsKey("a")); } }
public void DictionaryExpiresStaleItems() { var dict = new ExpirableItemDictionary<string, object>(TimeSpan.FromMilliseconds(50)); dict.Add("a", 1); dict.Add("b", 2, TimeSpan.FromMilliseconds(10)); dict.Add("c", 3, DateTime.MaxValue); Assert.IsTrue(dict.ContainsKey("a")); Assert.IsTrue(dict.ContainsKey("b")); Assert.IsTrue(dict.ContainsKey("c")); Thread.Sleep(51); Assert.IsFalse(dict.ContainsKey("a")); Assert.IsFalse(dict.ContainsKey("b")); Assert.IsTrue(dict.ContainsKey("c")); }
public void DictionaryExpiresStaleItems() { var dict = new ExpirableItemDictionary <string, object>(TimeSpan.FromMilliseconds(50)); dict.Add("a", 1); dict.Add("b", 2, TimeSpan.FromMilliseconds(10)); dict.Add("c", 3, DateTime.MaxValue); Assert.IsTrue(dict.ContainsKey("a")); Assert.IsTrue(dict.ContainsKey("b")); Assert.IsTrue(dict.ContainsKey("c")); Thread.Sleep(51); Assert.IsFalse(dict.ContainsKey("a")); Assert.IsFalse(dict.ContainsKey("b")); Assert.IsTrue(dict.ContainsKey("c")); }
public void DictionaryRaisesExpirationEvent() { var dict = new ExpirableItemDictionary<string, object>(TimeSpan.FromMilliseconds(50)); string key = "a"; object value = 1; dict[key] = value; object sender = null; string eventKey = null; object eventValue = null; dict.ItemExpired += (s, e) => { sender = s; eventKey = e.Key; eventValue = e.Value; }; Thread.Sleep(51); dict.RemoveExpiredItems(); Assert.AreSame(sender, dict); Assert.AreEqual(eventKey, key); Assert.AreEqual(eventValue, value); }