async void GetCachedItemAsync_GetItemThatDoesHaveKeyAndIsIsSlidingExpired_SlidedExpirationUpdates( [Frozen] Mock <IReliableStateManagerReplica2> stateManager, [Frozen] Mock <IReliableDictionary <string, CachedItem> > cacheItemDict, [Frozen] Mock <IReliableDictionary <string, CacheStoreMetadata> > metadataDict, [Frozen] Mock <ISystemClock> systemClock, [Greedy] ServiceFabricDistributedCacheStoreService cacheStore) { var cacheValue = Encoding.UTF8.GetBytes("someValue"); var currentTime = new DateTime(2019, 2, 1, 1, 0, 0); systemClock.SetupGet(m => m.UtcNow).Returns(currentTime); SetupInMemoryStores(stateManager, cacheItemDict); SetupInMemoryStores(stateManager, metadataDict); await cacheStore.SetCachedItemAsync("mykey", cacheValue, TimeSpan.FromSeconds(10), null); systemClock.SetupGet(m => m.UtcNow).Returns(currentTime.AddSeconds(5)); var resultAfter5Seconds = await cacheStore.GetCachedItemAsync("mykey"); Assert.Equal(cacheValue, resultAfter5Seconds); systemClock.SetupGet(m => m.UtcNow).Returns(currentTime.AddSeconds(8)); var resultAfter8Seconds = await cacheStore.GetCachedItemAsync("mykey"); Assert.Equal(cacheValue, resultAfter8Seconds); systemClock.SetupGet(m => m.UtcNow).Returns(currentTime.AddSeconds(9)); var resultAfter9Seconds = await cacheStore.GetCachedItemAsync("mykey"); Assert.Equal(cacheValue, resultAfter9Seconds); systemClock.SetupGet(m => m.UtcNow).Returns(currentTime.AddSeconds(19)); var resultAfter19Seconds = await cacheStore.GetCachedItemAsync("mykey"); Assert.Null(resultAfter19Seconds); }
async void GetCachedItemAsync_GetItemThatExistsWithAbsoluteExpiration_ItemIsMovedToLastItem( [Frozen] Mock <IReliableStateManagerReplica2> stateManager, [Frozen] Mock <IReliableDictionary <string, CachedItem> > cacheItemDict, [Frozen] Mock <IReliableDictionary <string, CacheStoreMetadata> > metadataDict, [Frozen] Mock <ISystemClock> systemClock, [Greedy] ServiceFabricDistributedCacheStoreService cacheStore) { var cacheValue = Encoding.UTF8.GetBytes("someValue"); var currentTime = new DateTime(2019, 2, 1, 1, 0, 0); var expireTime = currentTime.AddSeconds(30); systemClock.SetupGet(m => m.UtcNow).Returns(currentTime); SetupInMemoryStores(stateManager, cacheItemDict); var metadata = SetupInMemoryStores(stateManager, metadataDict); await cacheStore.SetCachedItemAsync("mykey1", cacheValue, null, expireTime); await cacheStore.SetCachedItemAsync("mykey2", cacheValue, null, expireTime); await cacheStore.SetCachedItemAsync("mykey3", cacheValue, null, expireTime); Assert.Equal("mykey3", metadata["CacheStoreMetadata"].LastCacheKey); await cacheStore.GetCachedItemAsync("mykey2"); Assert.Equal("mykey2", metadata["CacheStoreMetadata"].LastCacheKey); }
async void GetCachedItemAsync_GetItemThatDoesNotExist_NullResultReturned( [Frozen] Mock <IReliableStateManagerReplica2> stateManager, [Frozen] Mock <IReliableDictionary <string, CachedItem> > cacheItemDict, [Frozen] Mock <IReliableDictionary <string, CacheStoreMetadata> > metadataDict, [Frozen] Mock <ISystemClock> systemClock, [Greedy] ServiceFabricDistributedCacheStoreService cacheStore) { var cacheValue = Encoding.UTF8.GetBytes("someValue"); var currentTime = new DateTime(2019, 2, 1, 1, 0, 0); var expireTime = currentTime.AddSeconds(1); systemClock.SetupGet(m => m.UtcNow).Returns(currentTime); SetupInMemoryStores(stateManager, metadataDict); SetupInMemoryStores(stateManager, cacheItemDict); var result = await cacheStore.GetCachedItemAsync("keyThatDoesNotExist"); Assert.Null(result); }