public void WhenInfiniteAbsoluteExpirationCacheItemThenItemIsNotStale() { // arrange var expectedResult = "expectedResult"; var cacheKey = "key"; using (var cache = new SaintModeCache()) { cache.GetOrCreate(cacheKey, (key, cancel) => expectedResult, ObjectCache.InfiniteAbsoluteExpiration); // act var result = cache.Stale(cacheKey); // assert Assert.That(result, Is.False); } }
public void WhenStaleCacheItemThenItemIsStale() { // arrange var expectedResult = "expectedResult"; var cacheKey = "key"; using (var cache = new SaintModeCache()) { var policy = new CacheItemPolicy { AbsoluteExpiration = DateTime.UtcNow.AddMilliseconds(10) }; cache.GetOrCreate(cacheKey, (key, cancel) => expectedResult, policy); Thread.Sleep(20); // act var result = cache.Stale(cacheKey); // assert Assert.That(result, Is.True); } }
public void WhenInfiniteAbsoluteExpirationCacheItemThenGetOrCreateUpdatesCachePolicy() { // arrange var expectedResult = "expectedResult"; var unexpectedResult = "unexpectedResult"; var cacheKey = "key"; using (var cache = new SaintModeCache()) { var policy = new CacheItemPolicy { AbsoluteExpiration = DateTime.UtcNow.AddMilliseconds(10) }; cache.GetOrCreate(cacheKey, (key, cancel) => unexpectedResult, ObjectCache.InfiniteAbsoluteExpiration); cache.SetOrUpdateWithoutCreate(cacheKey, expectedResult, policy); Thread.Sleep(20); // act var result = cache.Stale(cacheKey); // assert Assert.That(result, Is.True); } }