public async Task TestLayeredScopedNoCacheObjectAsync() { var level1Cache = new NoCache(); var level2Cache = new NoCache(); var cache = new LayeredScopedCache("lc", level1Cache, level2Cache); int hits = 0; Func <Task <ScopedValue <string> > > getter = async() => { await Task.Delay(10); hits++; return(new ScopedValue <string>(hits.ToString(), DateTimeOffset.UtcNow)); }; GetScopedResult <string> result; result = await cache.GetScopedAsync("key", getter); Assert.AreEqual(1, hits); Assert.AreEqual("1", result.ScopedValue.Value); Assert.AreEqual(CacheMethodTaken.None, result.MethodTaken); result = await cache.GetScopedAsync("key", getter); Assert.AreEqual(2, hits); Assert.AreEqual("2", result.ScopedValue.Value); Assert.AreEqual(CacheMethodTaken.None, result.MethodTaken); }
public void TestLayeredScopedNoCacheObject() { var level1Cache = new NoCache(); var level2Cache = new NoCache(); var cache = new LayeredScopedCache("lc", level1Cache, level2Cache); int hits = 0; Func <ScopedValue <string> > getter = () => { hits++; return(new ScopedValue <string>(hits.ToString(), DateTimeOffset.UtcNow)); }; GetScopedResult <string> result; result = cache.GetScoped("key", getter); Assert.AreEqual(1, hits); Assert.AreEqual("1", result.ScopedValue.Value); Assert.AreEqual(CacheMethodTaken.None, result.MethodTaken); result = cache.GetScoped("key", getter); Assert.AreEqual(2, hits); Assert.AreEqual("2", result.ScopedValue.Value); Assert.AreEqual(CacheMethodTaken.None, result.MethodTaken); }