public void OrderByAndThenBy() { var expression = OrderByTestQueryGenerator.CreateOrderByQueryWithOrderByAndThenBy(QuerySource).Expression; var queryModel = QueryParser.GetParsedQuery(expression); var mainFromClause = queryModel.MainFromClause; Assert.That(mainFromClause.ItemName, Is.EqualTo("s")); CheckConstantQuerySource(mainFromClause.FromExpression, QuerySource); var orderByClause = (OrderByClause)queryModel.BodyClauses[0]; Assert.That(orderByClause.Orderings.Count, Is.EqualTo(3)); var ordering1 = orderByClause.Orderings[0]; Assert.That(ordering1.OrderingDirection, Is.EqualTo(OrderingDirection.Asc)); CheckResolvedExpression <Cook, string> (ordering1.Expression, mainFromClause, s => s.FirstName); var ordering2 = orderByClause.Orderings[1]; Assert.That(ordering2.OrderingDirection, Is.EqualTo(OrderingDirection.Desc)); CheckResolvedExpression <Cook, string> (ordering2.Expression, mainFromClause, s => s.Name); var ordering3 = orderByClause.Orderings[2]; Assert.That(ordering3.OrderingDirection, Is.EqualTo(OrderingDirection.Asc)); CheckResolvedExpression <Cook, List <int> > (ordering3.Expression, mainFromClause, s => s.Holidays); var selectClause = queryModel.SelectClause; CheckResolvedExpression <Cook, Cook> (selectClause.Selector, queryModel.MainFromClause, s => s); }
public void MultipleOrderBys() { var expression = OrderByTestQueryGenerator.CreateOrderByQueryWithMultipleOrderBys(QuerySource).Expression; var queryModel = QueryParser.GetParsedQuery(expression); var mainFromClause = queryModel.MainFromClause; CheckConstantQuerySource(mainFromClause.FromExpression, QuerySource); var orderByClause1 = (OrderByClause)queryModel.BodyClauses[0]; Assert.That(orderByClause1.Orderings.Count, Is.EqualTo(3)); var orderByClause2 = (OrderByClause)queryModel.BodyClauses[1]; Assert.That(orderByClause2.Orderings.Count, Is.EqualTo(1)); }