public void Clearing_set_releases_all_items() { var changed = false; var ttl = 10.Seconds(); var set = new ExpiringHashSet <string>(TaskTimerFactory.Current); set.SetOrUpdate("a", ttl); set.SetOrUpdate("b", ttl); set.SetOrUpdate("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 ExpiringHashSet <int>(TaskTimerFactory.Current); set.EntryExpired += (s, e) => { entries.Add(e.Entry.Value); expired.Set(); }; var n = 1000; for (var i = 0; i < n; i++) { set.SetOrUpdate(i, TimeSpan.FromMinutes(10)); } set.SetOrUpdate(100000, 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 ExpiringHashSet<int>(TaskTimerFactory.Current); set.EntryExpired += (s, e) => { entries.Add(e.Entry.Value); expired.Set(); }; var n = 1000; for(var i = 0; i < n; i++) { set.SetExpiration(i, TimeSpan.FromMinutes(10)); } set.SetExpiration(100000, 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 ExpiringHashSet<string>(TaskTimerFactory.Current); set.SetExpiration("a", ttl); set.SetExpiration("b", ttl); set.SetExpiration("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); }