예제 #1
0
        public void AddAndRetrieveItem()
        {
            var key   = Guid.NewGuid();
            var cache = new SimpleCache <Guid, string>(_expirationSpan, CacheExpirationTypes.Timed);

            cache.AddItem(new CacheItem <Guid, string> {
                Key = key, Value = "test"
            });

            var item = cache[key];

            Assert.IsNotNull(item);
            Assert.AreEqual("test", item.Value);
        }
예제 #2
0
        public void InvalidateCache()
        {
            var cache = new SimpleCache <Guid, string>(_expirationSpan, CacheExpirationTypes.Timed);

            cache.AddItem(new CacheItem <Guid, string> {
                Key = Guid.Empty, Value = string.Empty
            });

            var cachedCount = cache.Count();

            cache.InvalidateCache();

            Assert.AreNotEqual(cachedCount, cache.Count());
        }
예제 #3
0
        public void AddAndExpireItem()
        {
            var are   = new AutoResetEvent(false);
            var cache = new SimpleCache <Guid, string>(_expirationSpan, CacheExpirationTypes.Timed);

            cache.ItemExpired += (sender, item) =>
            {
                are.Set();
            };


            cache.AddItem(new CacheItem <Guid, string> {
                Key = Guid.NewGuid(), Value = "test"
            });

            Thread.Sleep(1000);

            Thread.Sleep(_expirationSpan);

            var signaled = are.WaitOne(10);

            Assert.IsTrue(signaled);
        }