Ejemplo n.º 1
0
        public void TestNoCacheObject()
        {
            var cache = new NoCache();

            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);
        }
Ejemplo n.º 2
0
        public void TestNoCacheStruct()
        {
            var cache = new NoCache();

            int hits = 0;

            Func <ScopedValue <int> > getter = () => { hits++; return(new ScopedValue <int>(hits, DateTimeOffset.UtcNow)); };

            GetScopedResult <int> result;

            using (CacheDirectives.SetScope(CacheMethod.GetOrSet, DateTimeOffset.UtcNow))
            {
                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);
            }
        }