public void Clearing_set_releases_all_items() { var changed = false; var ttl = 10.Seconds(); var set = new ExpiringDictionary <int, string>(TaskTimerFactory.Current); set.Set(1, "a", ttl); set.Set(2, "b", ttl); set.Set(3, "v", ttl); set.CollectionChanged += (s, e) => changed = true; Assert.AreEqual(3, set.Count()); Assert.IsFalse(changed); set.Clear(); Assert.AreEqual(0, set.Count()); Assert.IsTrue(changed); }
public void New_item_with_more_recent_expiration_will_fire_at_expected_time() { var expired = new ManualResetEvent(false); var entries = new List <int>(); var set = new ExpiringDictionary <int, string>(TaskTimerFactory.Current); set.EntryExpired += (s, e) => { entries.Add(e.Entry.Key); expired.Set(); }; var n = 1000; for (var i = 0; i < n; i++) { set.Set(i, "v" + i, TimeSpan.FromMinutes(10)); } set.Set(100000, "bar", TimeSpan.FromSeconds(2)); Assert.IsTrue(expired.WaitOne(4000)); Assert.AreEqual(1, entries.Count); Assert.AreEqual(n, set.Count()); }
public void New_item_with_more_recent_expiration_will_fire_at_expected_time() { var expired = new ManualResetEvent(false); var entries = new List<int>(); var set = new ExpiringDictionary<int, string>(TaskTimerFactory.Current); set.EntryExpired += (s, e) => { entries.Add(e.Entry.Key); expired.Set(); }; var n = 1000; for(var i = 0; i < n; i++) { set.Set(i, "v" + i, TimeSpan.FromMinutes(10)); } set.Set(100000, "bar", TimeSpan.FromSeconds(2)); Assert.IsTrue(expired.WaitOne(4000)); Assert.AreEqual(1, entries.Count); Assert.AreEqual(n, set.Count()); }
public void Clearing_set_releases_all_items() { var changed = false; var ttl = 10.Seconds(); var set = new ExpiringDictionary<int, string>(TaskTimerFactory.Current); set.Set(1, "a", ttl); set.Set(2, "b", ttl); set.Set(3, "v", ttl); set.CollectionChanged += (s, e) => changed = true; Assert.AreEqual(3, set.Count()); Assert.IsFalse(changed); set.Clear(); Assert.AreEqual(0, set.Count()); Assert.IsTrue(changed); }