public void ClearRegisteredDomainExtensionCacheStrategiesTest()
        {
            //添加领域缓存
            CacheStrategyDomainWarehouse.RegisterCacheStrategyDomain(TestExtensionCacheStrategy.Instance);
            var objectCache = CacheStrategyFactory.GetObjectCacheStrategyInstance();

            var testCacheStrategy = CacheStrategyDomainWarehouse
                                    .GetDomainExtensionCacheStrategy(objectCache, new TestCacheDomain());

            Assert.IsInstanceOfType(testCacheStrategy, typeof(TestExtensionCacheStrategy));

            //清除领域缓存
            CacheStrategyDomainWarehouse.ClearRegisteredDomainExtensionCacheStrategies();
            try
            {
                testCacheStrategy = CacheStrategyDomainWarehouse
                                    .GetDomainExtensionCacheStrategy(objectCache, new TestCacheDomain());
            }
            catch (UnregisteredDomainCacheStrategyException ex)
            {
                Console.WriteLine("以下异常抛出才是正确的\r\n========\r\n");
                Console.WriteLine(ex);//未注册
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
            }
        }
예제 #2
0
        public void RegisterAndGetTest()
        {
            //»¹Ô­Ä¬ÈÏ»º´æ״̬
            CacheStrategyFactory.RegisterObjectCacheStrategy(() => LocalObjectCacheStrategy.Instance);

            //×¢²á
            CacheStrategyDomainWarehouse.RegisterCacheStrategyDomain(TestExtensionCacheStrategy.Instance);

            //»ñÈ¡

            //»ñÈ¡µ±Ç°»º´æ²ßÂÔ£¨Ä¬ÈÏΪÄڴ滺´æ£©
            var objectCache       = CacheStrategyFactory.GetObjectCacheStrategyInstance();
            var testCacheStrategy = CacheStrategyDomainWarehouse
                                    .GetDomainExtensionCacheStrategy(objectCache, new TestCacheDomain());

            Assert.IsInstanceOfType(testCacheStrategy, typeof(TestExtensionCacheStrategy));

            var baseCache = testCacheStrategy.BaseCacheStrategy();

            Assert.IsInstanceOfType(baseCache, objectCache.GetType());


            //дÈë
            var testStr = Guid.NewGuid().ToString();

            baseCache.Set("TestCache", testStr);

            //¶ÁÈ¡
            var result = (testCacheStrategy as TestExtensionCacheStrategy).GetTestCache("TestCache");

            Assert.AreEqual(testStr, result);
        }
        public void RegisterAndGetTest()
        {
            //还原默认缓存状态
            CacheStrategyFactory.RegisterObjectCacheStrategy(() => LocalObjectCacheStrategy.Instance);

            //注册
            CacheStrategyDomainWarehouse.RegisterCacheStrategyDomain(TestExtensionCacheStrategy.Instance);

            //获取

            //获取当前缓存策略(默认为内存缓存)
            var objectCache       = CacheStrategyFactory.GetObjectCacheStrategyInstance();
            var testCacheStrategy = CacheStrategyDomainWarehouse
                                    .GetDomainExtensionCacheStrategy(objectCache, new TestCacheDomain());

            Assert.IsInstanceOfType(testCacheStrategy, typeof(TestExtensionCacheStrategy));

            var baseCache = testCacheStrategy.BaseCacheStrategy();

            Assert.IsInstanceOfType(baseCache, objectCache.GetType());


            //写入
            var testStr = Guid.NewGuid().ToString();

            baseCache.Set("TestCache", testStr);

            //读取
            var result = (testCacheStrategy as TestExtensionCacheStrategy).GetTestCache("TestCache");

            Assert.AreEqual(testStr, result);
        }