public void Create_WithGoodPredicate_Succeeds()
        {
            Predicate<CachedValue<string>> predicate = (item) => true;
            var strategy = new GenericExpirationStrategy<string>(predicate);

            Assert.IsNotNull(strategy);
        }
        public void IsExpired_WorksCorrectly_Test()
        {
            Predicate<CachedValue<string>> predicate = (item) => (item.Value == "expired");
            var strategy = new GenericExpirationStrategy<string>(predicate);

            Assert.IsFalse(strategy.IsExpired(new CachedValue<string>("good")));
            Assert.IsTrue(strategy.IsExpired(new CachedValue<string>("expired")));
        }
Esempio n. 3
0
 public void CheckAndSetCache_Clean_Works()
 {
     var strategy = new GenericExpirationStrategy<object>(v => (int)v.Value == 2);
     using (var cache = new CheckAndSetCache<string, object>(strategy))
     {
         cache.Add("1", 1);
         cache.Add("2", 2);
         cache.Add("3", 3);
         Assert.AreEqual(3, cache.Count);
         cache.Clean();
         Assert.AreEqual(2, cache.Count);
     }
 }
        public void GenericOnDemandRefreshCache_Clean_Functions()
        {
            var strategy = new GenericExpirationStrategy<string>(v => v.Value == "value1");
            Func<string, string> missing = (key) => key;
            var cache = GenericOnDemandRefreshCache.Create(strategy, missing);

            cache.Add("key1", "value1");
            cache.Add("key2", key => key + "value2");
            cache.Add("key3", "value3", key => key + "value3");

            Assert.AreEqual(3, cache.Count);
            cache.Clean();
            Assert.AreEqual(2, cache.Count);

            Assert.AreEqual(1, cache.Statistics.Cleanings.Value);
            Assert.AreEqual(0, cache.Statistics.Evictions.Value);
            Assert.AreEqual(0, cache.Statistics.Requests.Value);
            Assert.AreEqual(0, cache.Statistics.Hits.Value);
            Assert.AreEqual(3, cache.Statistics.Updates.Value);
            Assert.AreEqual(0, cache.Statistics.Misses.Value);
        }
        public void GenericBackgroundRefreshCache_Clean_Functions()
        {
            var timespan = TimeSpan.FromDays(1);
            var strategy = new GenericExpirationStrategy<string>(v => v.Value == "value1");
            Func<string, string> factory = (key) => key;
            var cache = GenericBackgroundRefreshCache.Create(timespan, strategy, factory);

            cache.Add("key1", "value1");
            cache.Add("key2", key => key + "value2");
            cache.Add("key3", "value3", key => key + "value3");

            Assert.AreEqual(3, cache.Count);
            cache.Clean();
            Assert.AreEqual(2, cache.Count);

            Assert.AreEqual(1, cache.Statistics.Cleanings.Value);
            Assert.AreEqual(0, cache.Statistics.Evictions.Value);
            Assert.AreEqual(0, cache.Statistics.Requests.Value);
            Assert.AreEqual(0, cache.Statistics.Hits.Value);
            Assert.AreEqual(3, cache.Statistics.Updates.Value);
            Assert.AreEqual(0, cache.Statistics.Misses.Value);
        }
 public void Create_WithBadPredicate_Throws()
 {
     Predicate<CachedValue<string>> predicate = null;
     var strategy = new GenericExpirationStrategy<string>(predicate);
 }