Exemplo n.º 1
0
 public void GetCacheKeyNamespaceTest()
 {
     var obj = new TestContainerBag1() as IBaseContainerBag;//使用接口或基类
     var result = ContainerHelper.GetCacheKeyNamespace(obj.GetType());
     Console.WriteLine(result);
     Assert.AreEqual("Container:Senparc.Weixin.Containers.Tests.TestContainerBag1", result);
 }
Exemplo n.º 2
0
 public void GetCacheKeyNamespaceTest()
 {
     var obj = new TestContainerBag1() as IBaseContainerBag;//使用接口或基类
     var result = ContainerHelper.GetCacheKeyNamespace(obj.GetType());
     Console.WriteLine(result);
     Assert.AreEqual("Container:Senparc.Weixin.Containers.Tests.TestContainerBag1", result);
 }
Exemplo n.º 3
0
 public void GetItemCacheKeyTest2()
 {
     var shortKey = "456BCD";
     var obj = new TestContainerBag1()
     {
         Key = "key"
     } as IBaseContainerBag;//使用接口或基类
     var result = ContainerHelper.GetItemCacheKey(obj, shortKey);
     Assert.AreEqual("Container:Senparc.Weixin.Containers.Tests.TestContainerBag1:" + shortKey, result);
 }
Exemplo n.º 4
0
 public void GetItemCacheKeyTest2()
 {
     var shortKey = "456BCD";
     var obj = new TestContainerBag1()
     {
         Key = "key"
     } as IBaseContainerBag;//使用接口或基类
     var result = ContainerHelper.GetItemCacheKey(obj, shortKey);
     Assert.AreEqual("Container:Senparc.Weixin.Containers.Tests.TestContainerBag1:" + shortKey, result);
 }
Exemplo n.º 5
0
        public void RunTest()
        {
            //默认情况下ThreadUtility应该已经将SenparcMessageQueueThreadUtility加入列队
            //下面对Container进行测试

            var c1 = TestContainer1.GetCollectionList();
            var key = DateTime.Now.Ticks.ToString();
            var bag = new TestContainerBag1()
            {
                Key = key,
                DateTime = DateTime.Now
            };
            TestContainer1.Update(key, bag);
            bag.DateTime = DateTime.MinValue;//进行修改

            //读取列队
            var mq = new SenparcMessageQueue();
            var mqKey = SenparcMessageQueue.GenerateKey("A",typeof(TestContainerBag1), bag.Key,"B");
            var mqItem = mq.GetItem(mqKey);
            Assert.IsNotNull(mqItem);

        }
Exemplo n.º 6
0
        public void RunTest()
        {
            //默认情况下ThreadUtility应该已经将SenparcMessageQueueThreadUtility加入列队
            //下面对Container进行测试

            var c1  = TestContainer1.GetCollectionList();
            var key = DateTime.Now.Ticks.ToString();
            var bag = new TestContainerBag1()
            {
                Key      = key,
                DateTime = DateTime.Now
            };

            TestContainer1.Update(key, bag);
            bag.DateTime = DateTime.MinValue;//进行修改

            //读取列队
            var mq     = new SenparcMessageQueue();
            var mqKey  = SenparcMessageQueue.GenerateKey("A", typeof(TestContainerBag1), bag.Key, "B");
            var mqItem = mq.GetItem(mqKey);

            Assert.IsNotNull(mqItem);
        }
        public void RegisterContainerCacheStrategyTest()
        {
            Console.WriteLine("不注册");

             {
                //不注册,使用默认
                var c1 = TestContainer1.GetCollectionList();
                Console.WriteLine(c1.Count);//0
                var c1Strategy = CacheStrategyFactory.GetContainerCacheStragegyInstance();
                Assert.IsNotNull(c1Strategy);

                var key = typeof(TestContainer1).ToString();
                var data = c1Strategy.Get(key);
                Assert.IsNotNull(data);

                var newData = new ContainerItemCollection();
                newData["A"] = new TestContainerBag1();
                c1Strategy.InsertToCache(key, newData);
                data = c1Strategy.Get(key);
                Assert.AreEqual(1, data.Count);
                Console.WriteLine(data.Count);//1

                var collectionList = TestContainer1.GetCollectionList()[key];
                collectionList.Add("ABC", new TestContainerBag1());
                data = c1Strategy.Get(key);
                Assert.AreEqual(2, data.Count);
                Console.WriteLine(data.Count);//2
            }
            Console.WriteLine("使用注册");
            {
                //进行注册
                CacheStrategyFactory.RegisterContainerCacheStrategy(() =>
                {
                    return LocalContainerCacheStrategy.Instance as IContainerCacheStragegy;
                });

                var key = typeof(TestContainer2).ToString();

                var c2 = TestContainer2.GetCollectionList();
                Console.WriteLine(c2.Count);//1(位注册的时候已经注册过一个TestContainer1)
                var c2Strategy = CacheStrategyFactory.GetContainerCacheStragegyInstance();
                Assert.IsNotNull(c2Strategy);


                var data = c2Strategy.Get(key);
                Assert.IsNotNull(data);

                var newData = new ContainerItemCollection();
                newData["A"] = new TestContainerBag1();
                c2Strategy.InsertToCache(key, newData);
                data = c2Strategy.Get(key);
                Assert.AreEqual(1, data.Count);
                Console.WriteLine(data.Count);//1

                var collectionList = TestContainer2.GetCollectionList()[typeof(TestContainer2).ToString()];
                collectionList.Add("DEF", new TestContainerBag2());
                data = c2Strategy.Get(key);
                Assert.AreEqual(2, data.Count);
                Console.WriteLine(data.Count);//1
            }
        }
Exemplo n.º 8
0
        public void RegisterContainerCacheStrategyTest()
        {
            Console.WriteLine("不注册");

            {
                //不注册,使用默认
                var c1 = TestContainer1.GetCollectionList();
                Console.WriteLine(c1.Count);//0
                var c1Strategy = CacheStrategyFactory.GetContainerCacheStragegyInstance();
                Assert.IsNotNull(c1Strategy);

                var key  = typeof(TestContainer1).ToString();
                var data = c1Strategy.Get(key);
                Assert.IsNotNull(data);

                var newData = new ContainerItemCollection();
                newData["A"] = new TestContainerBag1();
                c1Strategy.InsertToCache(key, newData);
                data = c1Strategy.Get(key);
                Assert.AreEqual(1, data.GetCount());
                Console.WriteLine(data.GetCount());//1

                var collectionList = TestContainer1.GetCollectionList()[key];
                collectionList.InsertToCache("ABC", new TestContainerBag1());
                data = c1Strategy.Get(key);
                Assert.AreEqual(2, data.GetCount());
                Console.WriteLine(data.GetCount());//2
            }
            Console.WriteLine("使用注册");
            {
                //进行注册
                CacheStrategyFactory.RegisterContainerCacheStrategy(() =>
                {
                    return(LocalContainerCacheStrategy.Instance as IContainerCacheStragegy);
                });

                var key = typeof(TestContainer2).ToString();

                var c2 = TestContainer2.GetCollectionList();
                Console.WriteLine(c2.Count);//1(位注册的时候已经注册过一个TestContainer1)
                var c2Strategy = CacheStrategyFactory.GetContainerCacheStragegyInstance();
                Assert.IsNotNull(c2Strategy);


                var data = c2Strategy.Get(key);
                Assert.IsNotNull(data);

                var newData = new ContainerItemCollection();
                newData["A"] = new TestContainerBag1();
                c2Strategy.InsertToCache(key, newData);
                data = c2Strategy.Get(key);
                Assert.AreEqual(1, data.GetCount());
                Console.WriteLine(data.GetCount());//1

                var collectionList = TestContainer2.GetCollectionList()[typeof(TestContainer2).ToString()];
                collectionList.InsertToCache("DEF", new TestContainerBag2());
                data = c2Strategy.Get(key);
                Assert.AreEqual(2, data.GetCount());
                Console.WriteLine(data.GetCount());//1
            }
        }