Ejemplo n.º 1
0
        public void Can_reset_expiration()
        {
            var expired = new ManualResetEvent(false);
            var changed = new ManualResetEvent(false);
            var k       = 42;
            var v       = "foo";
            var ttl     = TimeSpan.FromSeconds(2);

            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(500));
            changed.Reset();
            Thread.Sleep(500);
            Assert.IsFalse(expired.WaitOne(500));
            var oldExpire = set[k].When;

            set.RefreshExpiration(k);
            Assert.Greater(set[k].When.WithoutMilliseconds(), oldExpire.WithoutMilliseconds());
            Assert.IsTrue(changed.WaitOne(5000));
            Assert.IsTrue(expired.WaitOne(5000));
        }
Ejemplo n.º 2
0
 public void Can_reset_expiration()
 {
     var expired = new ManualResetEvent(false);
     var changed = new ManualResetEvent(false);
     var k = 42;
     var v = "foo";
     var ttl = TimeSpan.FromSeconds(2);
     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(500));
     changed.Reset();
     Thread.Sleep(500);
     Assert.IsFalse(expired.WaitOne(500));
     var oldExpire = set[k].When;
     set.RefreshExpiration(k);
     Assert.Greater(set[k].When.WithoutMilliseconds(), oldExpire.WithoutMilliseconds());
     Assert.IsTrue(changed.WaitOne(5000));
     Assert.IsTrue(expired.WaitOne(5000));
 }