public void CacheExpirationUnsuccessfulDoesNotFireEvents()
        {
            ICacheOperations cacheOperations = new MockCacheOperations();
            ExpirationTask   expiration      = new ExpirationTask(cacheOperations, instrumentationProvider);

            CacheItem expiredItem1 = new CacheItem(key1, new object(), CacheItemPriority.NotRemovable, null, new NeverExpired());

            cacheOperations.CurrentCacheState.Add(key1, expiredItem1);
            CacheItem expiredItem2 = new CacheItem(key2, new object(), CacheItemPriority.NotRemovable, null, new NeverExpired());

            cacheOperations.CurrentCacheState.Add(key2, expiredItem2);

            expiration.DoExpirations();

            Assert.AreEqual(0, instrumentationListener.eventArgs.Count);
        }
        public void CacheExpirationDoesFireEvents()
        {
            ICacheOperations cacheOperations = new MockCacheOperations();
            ExpirationTask   expiration      = new ExpirationTask(cacheOperations, instrumentationProvider);

            CacheItem expiredItem1 = new CacheItem(key1, new object(), CacheItemPriority.NotRemovable, null, new AlwaysExpired());

            cacheOperations.CurrentCacheState.Add(key1, expiredItem1);
            CacheItem expiredItem2 = new CacheItem(key2, new object(), CacheItemPriority.NotRemovable, null, new AlwaysExpired());

            cacheOperations.CurrentCacheState.Add(key2, expiredItem2);

            expiration.DoExpirations();

            Assert.AreEqual(1, instrumentationListener.eventArgs.Count);
            IList <CacheExpiredEventArgs> expiries = FilterEventArgs <CacheExpiredEventArgs>(instrumentationListener.eventArgs);

            Assert.AreEqual(1, expiries.Count);
            Assert.AreEqual(2L, expiries[0].ItemsExpired);
        }
        public void CacheScavengeDoesFireEvents()
        {
            ICacheOperations cacheOperations = new MockCacheOperations();
            CacheItem        item1           = new CacheItem(key1, new object(), CacheItemPriority.Low, null);

            cacheOperations.CurrentCacheState.Add(key1, item1);
            CacheItem item2 = new CacheItem(key2, new object(), CacheItemPriority.Low, null);

            cacheOperations.CurrentCacheState.Add(key2, item2);
            CacheItem item3 = new CacheItem(key3, new object(), CacheItemPriority.NotRemovable, null);

            cacheOperations.CurrentCacheState.Add(key3, item3);

            ScavengerTask scavenging = new ScavengerTask(2, new CacheCapacityScavengingPolicy(2), cacheOperations, instrumentationProvider);

            scavenging.DoScavenging();
            Assert.AreEqual(1, instrumentationListener.eventArgs.Count);
            IList <CacheScavengedEventArgs> scavenges = FilterEventArgs <CacheScavengedEventArgs>(instrumentationListener.eventArgs);

            Assert.AreEqual(1, scavenges.Count);
            Assert.AreEqual(2L, scavenges[0].ItemsScavenged);
        }