public void OrderByAndWhere()
        {
            var expression = MixedTestQueryGenerator.CreateOrderByWithWhereCondition(QuerySource).Expression;
            var queryModel = QueryParser.GetParsedQuery(expression);

            var whereClause = (WhereClause)queryModel.BodyClauses[0];

            CheckResolvedExpression <Cook, bool> (whereClause.Predicate, queryModel.MainFromClause, s1 => s1.FirstName == "Garcia");

            var orderByClause = (OrderByClause)queryModel.BodyClauses[1];

            CheckResolvedExpression <Cook, string> (orderByClause.Orderings[0].Expression, queryModel.MainFromClause, s1 => s1.FirstName);
        }
Exemplo n.º 2
0
    public void SelectMany_InSelectMany ()
    {
      var expression = MixedTestQueryGenerator.CreateThreeFromWhereQuery (QuerySource, QuerySource, QuerySource).Expression;
      var queryModel = QueryParser.GetParsedQuery (expression);

      var mainFromClause = queryModel.MainFromClause;
      CheckConstantQuerySource (mainFromClause.FromExpression, QuerySource);

      var additionalFromClause1 = (AdditionalFromClause) queryModel.BodyClauses[0];
      Assert.That (additionalFromClause1.ItemName, Is.EqualTo ("s2"));
      
      var whereClause = (WhereClause) queryModel.BodyClauses[1];
      CheckResolvedExpression<Cook, bool> (whereClause.Predicate, queryModel.MainFromClause, s1 => s1.FirstName == "Hugo");

      var additionalFromClause2 = (AdditionalFromClause) queryModel.BodyClauses[2];
      Assert.That (additionalFromClause2.ItemName, Is.EqualTo ("s3"));
    }
Exemplo n.º 3
0
    public void MultiFromsAndWhere ()
    {
      var expression = MixedTestQueryGenerator.CreateMultiFromWhereQuery (QuerySource, QuerySource).Expression;
      var queryModel = QueryParser.GetParsedQuery (expression);

      var mainFromClause = queryModel.MainFromClause;
      CheckConstantQuerySource (mainFromClause.FromExpression, QuerySource);

      var additionalFromClause = (AdditionalFromClause) queryModel.BodyClauses[0];
      CheckConstantQuerySource (additionalFromClause.FromExpression, QuerySource);

      var whereClause = (WhereClause) queryModel.BodyClauses[1];
      CheckResolvedExpression<Cook, bool> (whereClause.Predicate, queryModel.MainFromClause, s1 => s1.Name == "Garcia");

      var selectClause = queryModel.SelectClause;
      CheckResolvedExpression<Cook, Cook> (selectClause.Selector, queryModel.MainFromClause, s1 => s1);
    }
Exemplo n.º 4
0
    public void WhereAndSelectMannyWithProjection ()
    {
      var expression = MixedTestQueryGenerator.CreateReverseFromWhereQueryWithProjection (QuerySource, QuerySource).Expression;
      var queryModel = QueryParser.GetParsedQuery (expression);

      var mainFromClause = queryModel.MainFromClause;
      Assert.That (mainFromClause.ItemName, Is.EqualTo ("s1"));
      Assert.That (queryModel.BodyClauses.Count, Is.EqualTo (2));

      var whereClause = (WhereClause) queryModel.BodyClauses[0];
      CheckResolvedExpression<Cook, bool> (whereClause.Predicate, queryModel.MainFromClause, s1 => s1.Name == "Garcia");

      var additionalFromClause = (AdditionalFromClause) queryModel.BodyClauses[1];
      CheckConstantQuerySource (additionalFromClause.FromExpression, QuerySource);
      
      var selectClause = queryModel.SelectClause;
      CheckResolvedExpression<Cook, string> (selectClause.Selector, (AdditionalFromClause) queryModel.BodyClauses.Last(), s2 => s2.Name);
    }
        public void MultiFromsWithOrderBy()
        {
            var expression = MixedTestQueryGenerator.CreateMultiFromWhereOrderByQuery(QuerySource, QuerySource).Expression;
            var queryModel = QueryParser.GetParsedQuery(expression);

            var additionalFromClause = (AdditionalFromClause)queryModel.BodyClauses[0];

            CheckConstantQuerySource(additionalFromClause.FromExpression, QuerySource);

            var whereClause = (WhereClause)queryModel.BodyClauses[1];

            CheckResolvedExpression <Cook, bool> (whereClause.Predicate, queryModel.MainFromClause, s1 => s1.Name == "Garcia");

            var orderByClause = (OrderByClause)queryModel.BodyClauses[2];

            Assert.That(orderByClause.Orderings[0].OrderingDirection, Is.EqualTo(OrderingDirection.Asc));
            CheckResolvedExpression <Cook, string> (orderByClause.Orderings[0].Expression, queryModel.MainFromClause, s1 => s1.FirstName);
            Assert.That(orderByClause.Orderings[1].OrderingDirection, Is.EqualTo(OrderingDirection.Desc));
            CheckResolvedExpression <Cook, string> (orderByClause.Orderings[1].Expression, additionalFromClause, s2 => s2.Name);
        }