public void Parse_WhenDescExpression_SortingDirectionBecomesDesc() { var lambda = new OrderByDescExpression(Reflect <MyClass> .LambdaFrom(m => m.String1)); var parsedLambda = CreateParser().Parse(new[] { lambda }); var node = (SortingNode)parsedLambda.Nodes[0]; Assert.AreEqual(SortDirections.Desc, node.Direction); }
public void Parse_WhenTwoPropertyLambdasArePassed_ExactlyTwoSortingNodeIsReturned() { var lambda1 = new OrderByAscExpression(Reflect <MyClass> .LambdaFrom(m => m.String1)); var lambda2 = new OrderByDescExpression(Reflect <MyClass> .LambdaFrom(m => m.Int1)); var parsedLambda = CreateParser().Parse(new OrderByExpression[] { lambda1, lambda2 }); Assert.AreEqual(2, parsedLambda.Nodes.Length); Assert.IsInstanceOf(typeof(SortingNode), parsedLambda.Nodes[0]); Assert.IsInstanceOf(typeof(SortingNode), parsedLambda.Nodes[1]); }
public void Parse_WhenAscAndDescExpressionOnSameMember_SortingDirectionBecomesBothAscAndDescInCorrectOrder() { var lambda1 = new OrderByAscExpression(Reflect <MyClass> .LambdaFrom(m => m.String1)); var lambda2 = new OrderByDescExpression(Reflect <MyClass> .LambdaFrom(m => m.String1)); var parsedLambda = CreateParser() .Parse(new OrderByExpression [] { lambda1, lambda2 }); Assert.AreEqual(2, parsedLambda.Nodes.Length); var node1 = (SortingNode)parsedLambda.Nodes[0]; Assert.AreEqual(SortDirections.Asc, node1.Direction); var node2 = (SortingNode)parsedLambda.Nodes[1]; Assert.AreEqual(SortDirections.Desc, node2.Direction); }