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