public void RaisesExpiredEventWithCorrectEventArgsWhenItemExpires()
{
var dispose = true;
var key = "1";
var value = 1;
var evDispose = false;
var evKey = (string)null;
var evValue = 0;
var cache = new CacheStorage<string, int>();
cache.DisposeValuesOnRemoval = dispose;
cache.ExpirationTimerInterval = TimeSpan.FromMilliseconds(250);
cache.Expired += (sender, e) =>
{
evDispose = e.Dispose;
evKey = e.Key;
evValue = e.Value;
};
cache.Add(key, value, expiration: new TimeSpan(0, 0, 0, 0, 250));
ThreadHelper.Sleep(750);
Assert.AreEqual(dispose, evDispose);
Assert.AreEqual(key, evKey);
Assert.AreEqual(value, evValue);
}
}