public void SetExpiration_does_not_create_item() { var k = 42; var ttl = TimeSpan.FromSeconds(10); var set = new ExpiringDictionary <int, string>(TaskTimerFactory.Current); Assert.IsFalse(set.SetExpiration(k, ttl)); }
public void SetExpiration_updates_expiration_time() { var k = 42; var v = "foo"; var ttl = TimeSpan.FromSeconds(10); var ttl2 = TimeSpan.FromSeconds(50); var set = new ExpiringDictionary <int, string>(TaskTimerFactory.Current); set.Set(k, v, ttl); Assert.IsTrue(set.SetExpiration(k, ttl2)); Assert.AreEqual(ttl2.WithoutMilliseconds(), set[k].TTL.WithoutMilliseconds()); }
public void Can_set_ttl_on_existing_item() { var expired = new ManualResetEvent(false); var changed = new ManualResetEvent(false); var k = 42; var v = "foo"; var ttl = TimeSpan.FromSeconds(10); ExpiringDictionary <int, string> .Entry entry = null; var set = new ExpiringDictionary <int, string>(TaskTimerFactory.Current); set.EntryExpired += (s, e) => { entry = e.Entry; expired.Set(); }; set.CollectionChanged += (s, e) => changed.Set(); set.Set(k, v, ttl); Assert.IsTrue(changed.WaitOne(2000)); changed.Reset(); Assert.IsFalse(expired.WaitOne(2000)); set.SetExpiration(k, TimeSpan.FromSeconds(1)); Assert.IsTrue(changed.WaitOne(5000)); Assert.IsTrue(expired.WaitOne(5000)); }
public void SetExpiration_updates_expiration_time() { var k = 42; var v = "foo"; var ttl = TimeSpan.FromSeconds(10); var ttl2 = TimeSpan.FromSeconds(50); var set = new ExpiringDictionary<int, string>(TaskTimerFactory.Current); set.Set(k, v, ttl); Assert.IsTrue(set.SetExpiration(k, ttl2)); Assert.AreEqual(ttl2.WithoutMilliseconds(), set[k].TTL.WithoutMilliseconds()); }
public void SetExpiration_does_not_create_item() { var k = 42; var ttl = TimeSpan.FromSeconds(10); var set = new ExpiringDictionary<int, string>(TaskTimerFactory.Current); Assert.IsFalse(set.SetExpiration(k, ttl)); }
public void Can_set_ttl_on_existing_item() { var expired = new ManualResetEvent(false); var changed = new ManualResetEvent(false); var k = 42; var v = "foo"; var ttl = TimeSpan.FromSeconds(10); ExpiringDictionary<int, string>.Entry entry = null; var set = new ExpiringDictionary<int, string>(TaskTimerFactory.Current); set.EntryExpired += (s, e) => { entry = e.Entry; expired.Set(); }; set.CollectionChanged += (s, e) => changed.Set(); set.Set(k, v, ttl); Assert.IsTrue(changed.WaitOne(2000)); changed.Reset(); Assert.IsFalse(expired.WaitOne(2000)); set.SetExpiration(k, TimeSpan.FromSeconds(1)); Assert.IsTrue(changed.WaitOne(5000)); Assert.IsTrue(expired.WaitOne(5000)); }