示例#1
0
        public void CachingReloadableEntry_Expiring_CallsCallbacks()
        {
            var config = InitConfig();

            config.ExpirationTime = TimeSpan.FromMilliseconds(0);
            var _cache = new InMemoryCache(config);

            var key             = "test_value";
            var key2            = "test_value2";
            var value           = new CachedModel();
            var reloadableEntry = new ReloadableCacheEntry(key, () => value);

            _cache.Set(reloadableEntry);

            _cache.OnExpire(entry =>
            {
                Assert.NotNull(entry);
                Assert.Equal(value, entry.Value);
            });

            _cache.OnExpire(key, entry =>
            {
                Assert.NotNull(entry);
                Assert.Equal(value, entry.Value);
            });

            // this @key2 does not exist so the callback should never be fired
            // Assert.True(false) is force failing the test
            _cache.OnExpire(key2, entry =>
            {
                Assert.True(false);
            });
        }
示例#2
0
        public void CachingReloadableEntry_CachedAndRenewed_Exist()
        {
            var expirationTime = 300;
            var timeout        = 200;

            var config = InitConfig();

            config.ExpirationTime = TimeSpan.FromMilliseconds(expirationTime);

            var _cache = new InMemoryCache(config);

            var key   = "test_value";
            var value = new CachedModel();
            var entry = new ReloadableCacheEntry(key, () => { value.Value++; return(value); });

            _cache.Set(entry);

            Thread.Sleep(timeout);

            var cachedValue = _cache.Get <CachedModel>(key);

            Thread.Sleep(timeout);

            cachedValue = _cache.Get <CachedModel>(key);
            Assert.NotNull(cachedValue);
        }
示例#3
0
        public void CachingReloadableEntry_Cached_Exists()
        {
            var config = InitConfig();
            var _cache = new InMemoryCache(config);

            var key   = "test_value";
            var value = new CachedModel();
            var entry = new ReloadableCacheEntry(key, () => { value.Value++; return(value); });

            _cache.Set(entry);

            var cachedValue = _cache.Get <CachedModel>(key);

            Assert.Equal(value, cachedValue);
        }
示例#4
0
        public void CachingReloadableEntry_InvalidatedAll_DoesntExist()
        {
            var config = InitConfig();
            var _cache = new InMemoryCache(config);

            var key   = "test_value";
            var value = new CachedModel();
            var entry = new ReloadableCacheEntry(key, () => { value.Value++; return(value); });

            _cache.Set(entry);

            _cache.Invalidate();

            var cachedValue = _cache.Get <CachedModel>(key);

            Assert.Null(cachedValue);
        }