public async Task GetItemAsync_OfCacheableStructRequestedMultipleTimesInSuccession_CallsRetrievalDelegateJustOnce() { // Arrange CacheableStruct cacheableStruct = new CacheableStruct(100); InMemoryItemCache <CacheableStruct> cache = new InMemoryItemCache <CacheableStruct>( () => { return(Task.FromResult(cacheableStruct.GetSelf())); }, null, TimeSpan.FromMinutes(2)); int actualResult; int expectedResult = 1; // Act _ = await cache.GetItemAsync(); _ = await cache.GetItemAsync(); _ = await cache.GetItemAsync(); _ = await cache.GetItemAsync(); actualResult = cacheableStruct.NumberOfGetSelfCalls; // Assert Assert.AreEqual(expectedResult, actualResult); }
public void GetItem_OfCacheableStructRequestedMultipleTimesInSuccession_CallsRetrievalDelegateJustOnce() { // Arrange CacheableStruct cacheableStruct = new CacheableStruct(125); AutoRefreshingItemCache <CacheableStruct> cache = new AutoRefreshingItemCache <CacheableStruct>( new FakeLogger(), (ct) => { return(Task.FromResult(cacheableStruct.GetSelf())); }, new CacheableStruct(1000), TimeSpan.FromMinutes(2) ); int actualResult; int expectedResult = 1; cache.Initialise(); // Act _ = cache.GetItem(); _ = cache.GetItem(); _ = cache.GetItem(); _ = cache.GetItem(); actualResult = cacheableStruct.NumberOfGetSelfCalls; // Assert Assert.AreEqual(expectedResult, actualResult); }
public void GetItem_OfCacheableStruct_ReturnsCorrectCachedValue() { // Arrange CacheableStruct cacheableStruct = new CacheableStruct(125); InMemoryItemCache <CacheableStruct> cache = new InMemoryItemCache <CacheableStruct>( null, () => { return(cacheableStruct); }, TimeSpan.FromMinutes(2)); int actualResult; int expectedResult = 125; // Act actualResult = cache.GetItem().GetValue(); // Assert Assert.AreEqual(expectedResult, actualResult); }
public async Task GetItemAsync_OfCacheableStruct_ReturnsCorrectCachedValue() { // Arrange CacheableStruct cacheableStruct = new CacheableStruct(100); InMemoryItemCache <CacheableStruct> cache = new InMemoryItemCache <CacheableStruct>( () => { return(Task.FromResult(cacheableStruct.GetSelf())); }, null, TimeSpan.FromMinutes(2)); int actualResult; int expectedResult = 100; // Act actualResult = (await cache.GetItemAsync()).GetValue(); // Assert Assert.AreEqual(expectedResult, actualResult); }
public void GetItem_OfCacheableStruct_ReturnsCorrectCachedValue() { // Arrange CacheableStruct cacheableStruct = new CacheableStruct(125); AutoRefreshingItemCache <CacheableStruct> cache = new AutoRefreshingItemCache <CacheableStruct>( new FakeLogger(), (ct) => { return(Task.FromResult(cacheableStruct)); }, new CacheableStruct(1000), TimeSpan.FromMinutes(2) ); int actualResult; int expectedResult = 125; cache.Initialise(); // Act actualResult = cache.GetItem().GetValue(); // Assert Assert.AreEqual(expectedResult, actualResult); }