Пример #1
0
        public void Simple_Get_Set_Test()
        {
            _cache.GetOrDefault("A").ShouldBe(null);
            _cache.Set("A", new MyCacheItem {
                Value = 42
            });
            _cache.GetOrDefault("A").ShouldNotBe(null);
            _cache.GetOrDefault("A").Value.ShouldBe(42);

            _cache.Get("B", () => new MyCacheItem {
                Value = 43
            }).Value.ShouldBe(43);
            _cache.Get("B", () => new MyCacheItem {
                Value = 44
            }).Value.ShouldBe(43);                                                    //不调用工厂,所以值不变

            var items1 = _cache.GetOrDefault(new string[] { "B", "C" });

            items1[0].Value.ShouldBe(43);
            items1[1].ShouldBeNull();

            var items2 = _cache.GetOrDefault(new string[] { "C", "D" });

            items2[0].ShouldBeNull();
            items2[1].ShouldBeNull();

            _cache.Set(new KeyValuePair <string, MyCacheItem>[] {
                new KeyValuePair <string, MyCacheItem>("C", new MyCacheItem {
                    Value = 44
                }),
                new KeyValuePair <string, MyCacheItem>("D", new MyCacheItem {
                    Value = 45
                })
            });

            var items3 = _cache.GetOrDefault(new string[] { "C", "D" });

            items3[0].Value.ShouldBe(44);
            items3[1].Value.ShouldBe(45);

            var items4 = _cache.Get(new string[] { "D", "E" }, (key) => new MyCacheItem {
                Value = key == "D" ? 46 : 47
            });

            items4[0].Value.ShouldBe(45); //不调用工厂,所以值不变
            items4[1].Value.ShouldBe(47);
        }
Пример #2
0
        public void Simple_Get_Set_Test(string cacheKey, int cacheValue)
        {
            var item = _cache.Get(cacheKey, () => new MyCacheItem {
                Value = cacheValue
            });

            item.ShouldNotBe(null);
            item.Value.ShouldBe(cacheValue);

            _cache.GetOrDefault(cacheKey).Value.ShouldBe(cacheValue);
        }
Пример #3
0
 public static TValue Get <TKey, TValue>(this ITypedCache <TKey, TValue> cache, TKey key, Func <TValue> factory)
 {
     return(cache.Get(key, k => factory()));
 }
Пример #4
0
 public List <SQL> GetSQLList()
 {
     return(_cache.Get("MS360_DataAccess_SQLConfig", (k) => {
         return LoadConfigs();
     }));
 }
Пример #5
0
        public void Test_Get()
        {
            var resultFromCache = typedCache.Get <User>("Test_Get");

            Assert.Null(resultFromCache);
        }