Ejemplo n.º 1
0
        public void Datetime()
        {
            Expression <Func <DateTime> > expr = () => DateTime.Parse("2012-5-25");
            var value = ExpressionCalculater.Eval(expr);

            Assert.AreEqual(new DateTime(2012, 5, 25), value);
        }
Ejemplo n.º 2
0
        public void String()
        {
            Expression <Func <string> > expr = () => "hello world!";

            var value = ExpressionCalculater.Eval(expr);

            Assert.AreEqual("hello world!", value);
        }
Ejemplo n.º 3
0
        public void Boolean()
        {
            Expression <Func <bool> > expr = () => true;
            var value = ExpressionCalculater.Eval(expr);

            Assert.AreEqual(true, value);

            expr  = () => false;
            value = ExpressionCalculater.Eval(expr);
            Assert.AreEqual(false, value);
        }
Ejemplo n.º 4
0
        public void StringContactParseTest()
        {
            var esql  = "'AAA' + 'BBB'";
            var expr  = CreateExpression(esql);
            var value = ExpressionCalculater.Eval(expr);

            Assert.AreEqual("AAABBB", value);

            esql  = "'AAA' + 'BBB' + 'CCC'";
            expr  = CreateExpression(esql);
            value = ExpressionCalculater.Eval(expr);

            Assert.AreEqual("AAABBBCCC", value);
        }
Ejemplo n.º 5
0
        public void New()
        {
            Expression <Func <Employee, object> > expr = e => new { e.FirstName, e.LastName };

            Console.WriteLine(expr);

            var employee = new Employee {
                FirstName = "Mike", LastName = "Mak"
            };
            var value = ExpressionCalculater.Eval(expr, new ObjectParameter("e", employee)) as dynamic;

            Assert.IsNotNull(value);
            Assert.AreEqual(employee.FirstName, value.FirstName);
            Assert.AreEqual(employee.LastName, value.LastName);
        }
Ejemplo n.º 6
0
        public void Interger()
        {
            Expression <Func <int> > expr = () => 5;

            Console.WriteLine(expr);

            var value = ExpressionCalculater.Eval(expr);

            Assert.AreEqual(5, value);

            expr = () => - 5;
            Console.WriteLine(expr);

            value = ExpressionCalculater.Eval(expr);
            Assert.AreEqual(-5, value);
        }
Ejemplo n.º 7
0
        public void MemberAccess()
        {
            var esql     = "@e.FirstName";
            var employee = new Employee {
                FirstName = "Mike"
            };
            var p = new ObjectParameter("e", employee);
            var expressionParser = new QueryParser(esql, new[] { p });
            var expr             = expressionParser.ParseExpression();

            Console.WriteLine(expr);



            var value = ExpressionCalculater.Eval(expr, new ObjectParameter("e", employee));

            Assert.AreEqual("Mike", value);
        }
Ejemplo n.º 8
0
        public void Row1()
        {
            var employee = new Employee {
                FirstName = "Mike", LastName = "Mak"
            };
            var esql = "row(FirstName, LastName)";
            //var expressionParser = new QueryParser(employee, esql);
            var parser = new QueryParser(employee, esql);
            var expr   = parser.ParseExpression();

            Console.WriteLine(expr);

            var a     = ExpressionCalculater.Eval(expr, new ObjectParameter("", employee));
            var value = a as IDataRecord;

            Assert.IsNotNull(value);
            Assert.AreEqual(employee.FirstName, value["FirstName"]);
            Assert.AreEqual(employee.LastName, value["LastName"]);
        }
Ejemplo n.º 9
0
        public void Row2()
        {
            var employee = new Employee {
                FirstName = "Mike", LastName = "Mak"
            };
            var esql = "row(@e.FirstName as F, @e.LastName as L)";

            //var expressionParser = new QueryParser(employee, esql);
            var parser = new QueryParser(esql, new ObjectParameter("e", employee));
            var expr   = parser.ParseExpression();

            Console.WriteLine(expr);

            var record = ExpressionCalculater.Eval(expr, new ObjectParameter("", employee)) as IDataRecord;

            Assert.IsNotNull(record);
            Assert.AreEqual(employee.FirstName, record["F"]);
            Assert.AreEqual(employee.LastName, record["L"]);

            var value = record as dynamic;

            Assert.AreEqual(employee.FirstName, value.F);
            Assert.AreEqual(employee.LastName, value.L);
        }