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); }
public void String() { Expression <Func <string> > expr = () => "hello world!"; var value = ExpressionCalculater.Eval(expr); Assert.AreEqual("hello world!", value); }
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); }
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); }
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); }
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); }
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); }
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"]); }
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); }