Exemplo n.º 1
0
        public void KVFieldExpressionSerializeTest()
        {
            var field = new Expressions.KVFieldExpression(Consts.EMPLOEE_NAME_ID, EntityFieldType.String);
            //var value = new Expressions.PrimitiveExpression("AAAAA1");
            var exp  = field == "AAAAA1";
            var data = SerializeExpression(exp);

            output.WriteLine($"长度: {data.Length}");                    //15
            output.WriteLine($"内容: {StringHelper.ToHexString(data)}"); //3F4E8000010040100C414141414131
        }
Exemplo n.º 2
0
        public void NullableTest()
        {
            var f1 = new Expressions.KVFieldExpression(1, EntityFieldType.Int32);
            var f2 = new Expressions.KVFieldExpression(2, EntityFieldType.Guid);

            Expressions.Expression exp = f1 > 5 & f2 == null;
            var expString1             = exp.ToString();

            var linqExp    = exp.ToLinqExpression(TestHelper.GetMockExpressionContext());
            var expString2 = linqExp.ToString();
        }
Exemplo n.º 3
0
        public unsafe void KVFieldExpressionTest_Mvcc()
        {
            var data  = StringHelper.FromHexString("00000020E4D8BEBE75592200000080000600004141414141310501880100000000000000000002060000414141414131");
            var field = new Expressions.KVFieldExpression(Consts.EMPLOEE_NAME_ID, EntityFieldType.String);

            Expressions.Expression filter = field == "AAAAA1";

            var ctx  = TestHelper.GetMockExpressionContext();
            var body = filter.ToLinqExpression(ctx);
            var exp  = Expression.Lambda <KVFilterFunc>(body,
                                                        ctx.GetParameter("vp"), ctx.GetParameter("vs"), ctx.GetParameter("mv"), ctx.GetParameter("ts"));
            var func = exp.Compile();

            fixed(byte *ptr = data)
            {
                IntPtr dataPtr = new IntPtr(ptr);

                Assert.True(func(dataPtr, data.Length, true, ulong.MaxValue));
            }
        }
Exemplo n.º 4
0
        public unsafe void KVFieldExpressionTest_NoneMvcc()
        {
            var data  = StringHelper.FromHexString("400005000041646D696E800005000041646D696E");
            var field = new Expressions.KVFieldExpression(Consts.EMPLOEE_NAME_ID, EntityFieldType.String);

            Expressions.Expression filter = field == "Admin";

            var ctx  = TestHelper.GetMockExpressionContext();
            var body = filter.ToLinqExpression(ctx);
            var exp  = Expression.Lambda <KVFilterFunc>(body,
                                                        ctx.GetParameter("vp"), ctx.GetParameter("vs"), ctx.GetParameter("mv"), ctx.GetParameter("ts"));
            var func = exp.Compile();

            fixed(byte *ptr = data)
            {
                IntPtr dataPtr = new IntPtr(ptr);

                Assert.True(func(dataPtr, data.Length, false, 0));
            }
        }