public void TestReturnsCachedItemWithinPeriod_ListType()
        {
            var cache = new DictionaryCache <IAwesomeInterface>();

            var configProvider = new BasicConfigurationProvider <IAwesomeInterface>();

            configProvider.For(a => a.ParameteredMethod(Param.IsAny <string>(), Param.IsAny <int>(), Param.IsAny <List <string> >())).CacheFor(10);

            var proxyContext = ProxyRequest <IAwesomeInterface> .FromExpression(a => a.ParameteredMethod("a", 2, new List <string>()
            {
                "a", "b"
            }));

            var val = Enumerable.Empty <string>();

            var cachePolicy = configProvider.GetPolicy(proxyContext.Method, proxyContext.Parameters);

            Assert.IsNotNull(cachePolicy, "Config provider didn't return a cache policy");
            Assert.IsTrue(cachePolicy.CacheDuration == 10, "Cache provider returned an unexpected cache policy");

            cache.StoreItem(proxyContext, cachePolicy, val);
            var returnedValue = cache.GetItem(proxyContext, cachePolicy);

            Assert.AreEqual(val, returnedValue.Object);
        }
        public ICachePolicyProvider <T> Config <T>(Action <ICachePolicyProvider <T> > expression) where T : class
        {
            var policies = new BasicConfigurationProvider <T>();

            expression(policies);

            return(policies);
        }
Exemplo n.º 3
0
        public void TestReturnsCachedItemWithinPeriod_ListType()
        {
            var cache = new DictionaryCache<IAwesomeInterface>();

            var configProvider = new BasicConfigurationProvider<IAwesomeInterface>();
            configProvider.For(a => a.ParameteredMethod(Param.IsAny<string>(), Param.IsAny<int>(), Param.IsAny<List<string>>())).CacheFor(10);

            var proxyContext = ProxyRequest<IAwesomeInterface>.FromExpression(a => a.ParameteredMethod("a", 2, new List<string>() {"a", "b"}));
            var val = Enumerable.Empty<string>();

            var cachePolicy = configProvider.GetPolicy(proxyContext.Method, proxyContext.Parameters);
            Assert.IsNotNull(cachePolicy, "Config provider didn't return a cache policy");
            Assert.IsTrue(cachePolicy.CacheDuration == 10, "Cache provider returned an unexpected cache policy");

            cache.StoreItem(proxyContext, cachePolicy, val);
            var returnedValue = cache.GetItem(proxyContext, cachePolicy);

            Assert.AreEqual(val, returnedValue.Object);
        }
Exemplo n.º 4
0
        public void TestReturnsCachedItemWithinPeriod()
        {
            ICacheProvider<IDummyInterface> cache = new DictionaryCache<IDummyInterface>();

            var configProvider = new BasicConfigurationProvider<IDummyInterface>();
            configProvider.For(a => a.GetProgramCards(Param.IsAny<string>(), Param.IsAny<DateTime>())).CacheFor(10);

            var proxyContext = ProxyRequest<IDummyInterface>.FromExpression(a => a.GetProgramCards("", DateTime.Now));
            var val = Enumerable.Empty<object>();

            var cachePolicy = configProvider.GetPolicy(proxyContext.Method, proxyContext.Parameters);
            Assert.IsNotNull(cachePolicy, "Config provider didn't return a cache policy");
            Assert.IsTrue(cachePolicy.CacheDuration == 10, "Cache provider returned an unexpected cache policy");

            cache.StoreItem(proxyContext, cachePolicy, val);
            var returnedValue = cache.GetItem(proxyContext, cachePolicy);

            Assert.AreEqual(val, returnedValue.Object);
        }
Exemplo n.º 5
0
        public void TestReturnsStaleOutsidePeriod()
        {
            ICacheProvider<IDummyInterface> cache = new DictionaryCache<IDummyInterface>();

            var configProvider = new BasicConfigurationProvider<IDummyInterface>();
            configProvider.For(a => a.GetProgramCards(Param.IsAny<string>(), Param.IsAny<DateTime>())).CacheFor(2).ExpireAfter(3);

            var proxyContext = ProxyRequest<IDummyInterface>.FromExpression(a => a.GetProgramCards("", DateTime.Now));
            var val = Enumerable.Empty<object>();

            var cachePolicy = configProvider.GetPolicy(proxyContext.Method, proxyContext.Parameters);
            Assert.IsNotNull(cachePolicy, "Config provider didn't return a cache policy");
            Assert.IsTrue(cachePolicy.CacheDuration == 2, "Cache provider returned an unexpected cache policy");

            cache.StoreItem(proxyContext, cachePolicy, val);
            Thread.Sleep(2000 + 100);
            var returnedValue = cache.GetItem(proxyContext, cachePolicy);

            Assert.IsTrue(returnedValue.State == CachedObjectState.Stale);
        }
        public void TestReturnsCachedItemWithinPeriod()
        {
            ICacheProvider <IDummyInterface> cache = new DictionaryCache <IDummyInterface>();

            var configProvider = new BasicConfigurationProvider <IDummyInterface>();

            configProvider.For(a => a.GetProgramCards(Param.IsAny <string>(), Param.IsAny <DateTime>())).CacheFor(10);

            var proxyContext = ProxyRequest <IDummyInterface> .FromExpression(a => a.GetProgramCards("", DateTime.Now));

            var val = Enumerable.Empty <object>();

            var cachePolicy = configProvider.GetPolicy(proxyContext.Method, proxyContext.Parameters);

            Assert.IsNotNull(cachePolicy, "Config provider didn't return a cache policy");
            Assert.IsTrue(cachePolicy.CacheDuration == 10, "Cache provider returned an unexpected cache policy");

            cache.StoreItem(proxyContext, cachePolicy, val);
            var returnedValue = cache.GetItem(proxyContext, cachePolicy);

            Assert.AreEqual(val, returnedValue.Object);
        }
        public void TestReturnsStaleOutsidePeriod_AbsoluteExpiery()
        {
            ICacheProvider <IDummyInterface> cache = new DictionaryCache <IDummyInterface>();

            var configProvider = new BasicConfigurationProvider <IDummyInterface>();

            configProvider.For(a => a.GetProgramCards(Param.IsAny <string>(), Param.IsAny <DateTime>())).CacheFor(2).ExpireAfter(3);

            var proxyContext = ProxyRequest <IDummyInterface> .FromExpression(a => a.GetProgramCards("", DateTime.Now));

            var val = Enumerable.Empty <object>();

            var cachePolicy = configProvider.GetPolicy(proxyContext.Method, proxyContext.Parameters);

            Assert.IsNotNull(cachePolicy, "Config provider didn't return a cache policy");
            Assert.IsTrue(cachePolicy.CacheDuration == 2, "Cache provider returned an unexpected cache policy");

            cache.StoreItem(proxyContext, cachePolicy, val);
            Thread.Sleep(3000 + 100);
            var returnedValue = cache.GetItem(proxyContext, cachePolicy);

            Assert.AreEqual(CachedObjectState.None, returnedValue.State);
        }