public void ParseMemberAccess() { DateTime d = new DateTime(2010, 12, 25); Expression<Func<int>> f = () => d.Day; MemberAccessNode node = (MemberAccessNode)ExpressionParser.Parse(f.Body); MemberAccessNode expected = new MemberAccessNode { Container = new ConstantNode { Text = "d", Value = d.ToString() }, MemberName = "Day", MemberValue = "25" }; Assert.AreEqual(expected, node); }
public void ParseNewAnonymousType() { int x = 1; Expression<Func<int>> f = () => new { Value = x, x }.Value; var p = new ExpressionParser(f.Body); var node = p.Parse(); var expected = new MemberAccessNode { Container = new NewAnonymousTypeNode { Parameters = new[] { new MemberAssignmentNode { MemberName = "Value", Value = new ConstantNode {Text = "x", Value="1" } }, new MemberAssignmentNode { MemberName = "x", Value = new ConstantNode {Text = "x", Value="1" } } }.ToList(), Value = "{ Value = 1, x = 1 }" }, MemberName = "Value", MemberValue = "1" }; Assert.AreEqual(expected, node); }