Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
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);
        }
        public byte[] GetFile(string token)
        {
            var cache = _cache.GetOrDefault(token);

            return(cache?.File);
        }