Beispiel #1
0
        public void ItemsAddedToCacheShouldUseCachePolicySupplied()
        {
            // given
            var policy = new CacheItemPolicy
            {
                AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(1)
            };
            ICache cache = new ObjectCacheWrapper(cacheItemPolicySelector: (key, value) => policy);

            // when, then
            cache.GetOrAdd("key1", _ => new object());
            cache.AddOrUpdate("key2", new object());

            Assert.That(cache.Contains("key1"), Is.True, "checking assumptions for GetOrAdd");
            Assert.That(cache.Contains("key2"), Is.True, "checking assumptions for Add");

            Thread.Sleep(2000); // wait until item has expired and should be removed

            Assert.That(cache.Contains("key1"), Is.False, "GetOrAdd did not use expiry policy");
            Assert.That(cache.Contains("key2"), Is.False, "Add did not use expiry policy");
        }