示例#1
0
        int ProcGet22()
        {
            ProcGet12();
            demo.Module1.Key key = new demo.Module1.Key(1);
            var v = demo.App.Instance.demo_Module1.Table2.Get(key);

            Assert.IsNotNull(v);

            Assert.IsTrue(v.Int1 == 1);
            Assert.IsTrue(v.Long2 == 2);
            Assert.IsTrue(v.String3.Equals("3"));
            Assert.IsTrue(v.Bool4);
            Assert.IsTrue(v.Short5 == 5);
            Assert.IsTrue(v.Float6 == 6);
            Assert.IsTrue(v.Double7 == 7);
            Assert.IsTrue(v.List9.Count == 1);
            Assert.IsTrue(v.Set10.Contains(10));
            Assert.IsTrue(v.Set10.Count == 1);
            Assert.IsTrue(v.Map11.Count == 1);
            Assert.IsTrue(v.Bean12.Int1 == 12);
            Assert.IsTrue(v.Byte13 == 13);

            demo.App.Instance.demo_Module1.Table2.Remove(key);
            Assert.IsNull(demo.App.Instance.demo_Module1.Table2.Get(key));
            return(Procedure.Success);
        }
示例#2
0
文件: TestLock.cs 项目: e2wugui/zeze
        public void Test()
        {
            // DEBUG 下垃圾回收策略导致 WeakReference 不回收。
#if RELEASE
            WeakHashSet <demo.Module1.Key> keys = new WeakHashSet <demo.Module1.Key>();
            demo.Module1.Key key1 = new demo.Module1.Key(1);
            demo.Module1.Key key2 = new demo.Module1.Key(1);

            Assert.IsTrue(null == keys.get(key1));
            keys.add(key1);

            demo.Module1.Key exist1 = keys.get(key1);
            Assert.IsTrue(null != exist1);
            Assert.IsTrue(exist1 == key1);

            demo.Module1.Key exist2 = keys.get(key2);
            Assert.IsTrue(null != exist2);
            Assert.IsTrue(exist2 == key1);

            key1   = null;
            key2   = null;
            exist1 = null;
            exist2 = null;

            demo.Module1.Key k4 = new demo.Module1.Key(1);
            WeakReference <demo.Module1.Key> wref = new WeakReference <demo.Module1.Key>(k4);
            k4 = null;
            for (int i = 0; i < 10; ++i)
            {
                System.GC.Collect();
                GC.WaitForFullGCComplete();
                GC.WaitForPendingFinalizers();
                Thread.Sleep(200);

                if (false == wref.TryGetTarget(out var notusedk4ref))
                {
                    break;
                }
            }

            demo.Module1.Key k4ref;
            Assert.IsTrue(false == wref.TryGetTarget(out k4ref));
            Assert.IsTrue(null == k4ref);

            demo.Module1.Key key3 = new demo.Module1.Key(1);
            Console.WriteLine("test: is null.");
            Assert.IsTrue(null == keys.get(key3));
#endif
        }
示例#3
0
        int ProcGet21()
        {
            ProcGet11();
            demo.Module1.Key key = new demo.Module1.Key(1);
            Assert.IsNull(demo.App.Instance.demo_Module1.Table2.Get(key));
            demo.Module1.Value v = new demo.Module1.Value();

            v.Int1    = 1;
            v.Long2   = 2;
            v.String3 = "3";
            v.Bool4   = true;
            v.Short5  = 5;
            v.Float6  = 6;
            v.Double7 = 7;
            v.List9.Add(new demo.Bean1());
            v.Set10.Add(10);
            v.Map11.Add(1, new demo.Module2.Value());
            v.Bean12.Int1 = 12;
            v.Byte13      = 13;

            demo.App.Instance.demo_Module1.Table2.Put(key, v);
            Assert.IsTrue(v == demo.App.Instance.demo_Module1.Table2.Get(key));
            return(Procedure.Success);
        }
示例#4
0
        public void Test1()
        {
            {
                TableKey tkey1 = new TableKey(1, 1);
                TableKey tkey2 = new TableKey(1, 1);

                int c = tkey1.CompareTo(tkey2);
                Assert.AreEqual(c, 0);
            }

            {
                TableKey tkey1 = new TableKey(1, 1);
                TableKey tkey2 = new TableKey(2, 1);

                int c = tkey1.CompareTo(tkey2);
                Assert.AreEqual(c, -1);
            }

            {
                TableKey tkey1 = new TableKey(1, 1L);
                TableKey tkey2 = new TableKey(1, 1L);

                int c = tkey1.CompareTo(tkey2);
                Assert.AreEqual(c, 0);
            }

            {
                TableKey tkey1 = new TableKey(1, 1L);
                TableKey tkey2 = new TableKey(1, 2L);

                int c = tkey1.CompareTo(tkey2);
                Assert.AreEqual(c, -1);
            }

            {
                TableKey tkey1 = new TableKey(1, false);
                TableKey tkey2 = new TableKey(1, true);

                int c = tkey1.CompareTo(tkey2);
                Assert.AreEqual(c, -1);
            }

            {
                TableKey tkey1 = new TableKey(1, 1);
                TableKey tkey2 = new TableKey(1, 2);

                int c = tkey1.CompareTo(tkey2);
                Assert.AreEqual(c, -1);
            }

            {
                demo.Module1.Key k1 = new demo.Module1.Key(1);
                demo.Module1.Key k2 = new demo.Module1.Key(1);

                TableKey tkey1 = new TableKey(1, k1);
                TableKey tkey2 = new TableKey(1, k2);

                int c = tkey1.CompareTo(tkey2);
                Assert.AreEqual(c, 0);
            }

            {
                demo.Module1.Key k1 = new demo.Module1.Key(1);
                demo.Module1.Key k2 = new demo.Module1.Key(2);

                TableKey tkey1 = new TableKey(1, k1);
                TableKey tkey2 = new TableKey(1, k2);

                int c = tkey1.CompareTo(tkey2);
                Assert.AreEqual(c, -1);
            }
        }