public void Item_not_returned_after_absolute_expiration_expired() { var cache = new RedisCache("localhost:6379"); var item = new TestObject { Message = "OK" }; cache.PutItem("key", item, new string[0], TimeSpan.MaxValue, DateTimeOffset.Now.AddMinutes(-10)); object fromCache; Assert.False(cache.GetItem("key", out fromCache)); Assert.Null(fromCache); }
public void Item_not_returned_after_sliding_expiration_expired() { var cache = new RedisCache("localhost:6379"); var item = new TestObject { Message = "OK" }; cache.PutItem("key", item, new string[0], TimeSpan.Zero.Subtract(new TimeSpan(10000)), DateTimeOffset.MaxValue); object fromCache; Assert.False(cache.GetItem("key", out fromCache)); Assert.Null(fromCache); }
public void Item_cached() { var cache = new RedisCache("localhost:6379"); var item = new TestObject { Message = "OK" }; cache.PutItem("key", item, new string[0], TimeSpan.MaxValue, DateTimeOffset.MaxValue); object fromCache; Assert.True(cache.GetItem("key", out fromCache)); Assert.Equal(item.Message, ((TestObject)fromCache).Message); Assert.True(cache.GetItem("key", out fromCache)); Assert.Equal(item.Message, ((TestObject)fromCache).Message); }
public void Item_still_returned_after_sliding_expiration_period() { var cache = new RedisCache("localhost:6379"); var item = new TestObject { Message = "OK" }; // Cache the item with a sliding expiration of 10 seconds cache.PutItem("key", item, new string[0], TimeSpan.FromSeconds(10), DateTimeOffset.MaxValue); object fromCache = null; // In a loop of 20 seconds retrieve the item every 5 second seconds. for (var i = 0; i < 4; i++) { Thread.Sleep(5000); // Wait 5 seconds // Retrieve item again. This should update LastAccess and as such keep the item 'alive' // Break when item cannot be retrieved Assert.True(cache.GetItem("key", out fromCache)); } Assert.NotNull(fromCache); }