public void AttemptToRemoveItemThatIsNotInTheCache() { // arrange const string key = "test"; const int returnValue = 12; var retrievalFixture = new RetrievalFixture <int>(returnValue); var sut = new MemoryCacheWrapper <int> { CachePolicy = new CacheItemPolicy(), DataRetrievalFunc = retrievalFixture.DataRetrievalFunc }; // act var removed = sut.RemoveFromCacheAsync(key).Result; // assert removed.Should().BeFalse(); }
public async Task CheckingIfCacheContainsKeyWhenTheCacheDoesNotContainTheItemReturnsFalse() { // arrange const string key = "test"; var cacheItemDummy = new CacheItemFixture(); var retrievalFixture = new RetrievalFixture <CacheItemFixture>(cacheItemDummy); var sut = new MemoryCacheWrapper <CacheItemFixture> { CachePolicy = new CacheItemPolicy(), DataRetrievalFunc = retrievalFixture.DataRetrievalFunc }; // act var result = await sut.ContainsKeyAsync(key); // assert result.Should().BeFalse(); }
public void RetrievingItemFromTheCacheReturnsTheCorrectItem() { // arrange const string key = "test"; var cacheItemDummy = new CacheItemFixture(); var retrievalFixture = new RetrievalFixture <CacheItemFixture>(cacheItemDummy); var sut = new MemoryCacheWrapper <CacheItemFixture> { CachePolicy = new CacheItemPolicy(), DataRetrievalFunc = retrievalFixture.DataRetrievalFunc }; var firstRetrieval = sut.GetAsync(key).Result; // act var secondRetrieval = sut.GetAsync(key).Result; // assert firstRetrieval.Should().Be(secondRetrieval); }
public void AddItemToTheCache() { // arrange const string key = "test"; const int returnValue = 12; var retrievalFixture = new RetrievalFixture <int>(returnValue); var sut = new MemoryCacheWrapper <int> { CachePolicy = new CacheItemPolicy(), DataRetrievalFunc = retrievalFixture.DataRetrievalFunc }; // act var result = sut.GetAsync(key).Result; // assert sut.ItemsInCache.Should().Be(1); retrievalFixture.WasCalled.Should().BeTrue(); result.Should().Be(returnValue); }
public void RemoveItemFromCache() { // arrange const string key = "test"; const int returnValue = 12; var retrievalFixture = new RetrievalFixture <int>(returnValue); var sut = new MemoryCacheWrapper <int> { CachePolicy = new CacheItemPolicy(), DataRetrievalFunc = retrievalFixture.DataRetrievalFunc }; sut.GetAsync(key).Wait(); // act var removed = sut.RemoveFromCacheAsync(key).Result; // assert removed.Should().BeTrue(); sut.ItemsInCache.Should().Be(0); }
public void MultipleRetrievalsOnlyHitTheRetrievalFuncitonOnce() { // arrange const string key = "test"; const int returnValue = 12; var retrievalFixture = new RetrievalFixture <int>(returnValue); var sut = new MemoryCacheWrapper <int> { CachePolicy = new CacheItemPolicy(), DataRetrievalFunc = retrievalFixture.DataRetrievalFunc }; // act Parallel.For(0, 10, t => { sut.GetAsync(key).Wait(); }); // assert retrievalFixture.CallCount.Should().Be(1); }