Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
 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());
 }
Exemplo n.º 4
0
 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);
 }