public void Invalidate_OfCacheableClassWhenCalledInvalidatedAndCalledAgain_ReturnsSecondCachedValue() { // Arrange int cachedValue = 100; AutoRefreshingItemCache <CacheableClass> cache = new AutoRefreshingItemCache <CacheableClass>( new FakeLogger(), (ct) => { cachedValue += 25; return(Task.FromResult(new CacheableClass(cachedValue))); }, null, TimeSpan.FromMinutes(2) ); CacheableClass cachedClass; int actualResult; int expectedResult = 150; cache.Initialise(); // Act _ = cache.GetItem(); cache.Invalidate(); TimeDelay.WaitFor(50); cachedClass = cache.GetItem(); actualResult = cachedClass.GetValue(); // Assert Assert.AreEqual(expectedResult, actualResult); }
public void Invalidate_OfIntWhenCalledInvalidatedAndCalledAgain_ReturnsSecondCachedValue() { // Arrange int cachedValue = 100; AutoRefreshingItemCache <int> cache = new AutoRefreshingItemCache <int>( new FakeLogger(), new NonCloningClonerFactory <int>(), (ct) => { cachedValue += 25; return(Task.FromResult(cachedValue)); }, 0, TimeSpan.FromMinutes(2) ); int actualResult; int expectedResult = 150; cache.Initialise(); // Act _ = cache.GetItem(); cache.Invalidate(); TimeDelay.WaitFor(50); actualResult = cache.GetItem(); // Assert Assert.AreEqual(expectedResult, actualResult); }