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));
        }