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); }
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); }