public void TimeToLive()
        {
            var schema = TypedSchemaFactory.FromType(typeof(CacheableTypeOk));

            var policy = new TtlEvictionPolicy(TimeSpan.FromSeconds(1));

            for (var i = 0; i < 10; i++)
            {
                var item   = new CacheableTypeOk(i, i + 1000, "aaa", new DateTime(2010, 10, 10), 1500);
                var packed = PackedObject.Pack(item, schema);

                policy.AddItem(packed);
            }

            Assert.IsFalse(policy.IsEvictionRequired);

            Thread.Sleep(1010);

            var toRemove = policy.DoEviction();

            Assert.AreEqual(10, toRemove.Count);

            var item11   = new CacheableTypeOk(11, 11 + 1000, "aaa", new DateTime(2010, 10, 10), 1500);
            var packed11 = PackedObject.Pack(item11, schema);

            policy.AddItem(packed11);
            toRemove = policy.DoEviction();
            Assert.AreEqual(0, toRemove.Count);

            Thread.Sleep(1010);

            toRemove = policy.DoEviction();
            Assert.AreEqual(1, toRemove.Count);
        }
Ejemplo n.º 2
0
        public void TimeToLiveRemoveItem()
        {
            var policy = new TtlEvictionPolicy(TimeSpan.FromSeconds(1));

            var item11   = new CacheableTypeOk(11, 11 + 1000, "aaa", new DateTime(2010, 10, 10), 1500);
            var packed11 = CachedObject.Pack(item11);

            var item12   = new CacheableTypeOk(12, 12 + 1000, "aaa", new DateTime(2010, 10, 10), 1500);
            var packed12 = CachedObject.Pack(item12);

            policy.AddItem(packed11);
            policy.AddItem(packed12);

            policy.TryRemove(packed11);
            Thread.Sleep(1010);

            var toRemove = policy.DoEviction();

            Assert.AreEqual(1, toRemove.Count);
            Assert.AreEqual(packed12, toRemove.Single());
        }