public void WhenActiveCacheItemRemovedThenGetOrCreateTriggersUpdate() { // arrange var expectedResult = "expectedResult"; var unexpectedResult = "unexpectedResult"; var cacheKey = "key"; var triggerUpdate = false; using (var cache = new SaintModeCache()) { var policy = new CacheItemPolicy { AbsoluteExpiration = ObjectCache.InfiniteAbsoluteExpiration }; cache.GetOrCreate(cacheKey, (key, cancel) => unexpectedResult, policy); cache.Remove(cacheKey); var ewh = new EventWaitHandle(false, EventResetMode.ManualReset); // act cache.GetOrCreate(cacheKey, (key, cancel) => { triggerUpdate = true; ewh.Set(); return(expectedResult); }, policy); // assert ewh.WaitOne(5000); Assert.That(triggerUpdate, Is.True); } }
public void WhenActiveCacheAndRemoveThenKeyIsCaseSensitive() { // arrange var expectedResult1 = "expectedResult1"; var expectedResult2 = "expectedResult2"; var cacheKey1 = "key"; var cacheKey2 = "KEY"; using (var cache = new SaintModeCache()) { cache.SetOrUpdateWithoutCreate(cacheKey1, expectedResult1); cache.SetOrUpdateWithoutCreate(cacheKey2, expectedResult2); cache.Remove(cacheKey2); // act var result1 = cache.GetWithoutCreateOrNull(cacheKey1); var result2 = cache.GetWithoutCreateOrNull(cacheKey2); // assert Assert.That(result1, Is.EqualTo(expectedResult1)); Assert.That(result2, Is.Null); } }