136 const string sql =
"SELECT a.col1, b.col2 FROM table1 AS a INNER JOIN table2 b ON a.id = b.id";
138 SqlExpression expression = null;
139 Assert.DoesNotThrow(() => expression = SqlExpression.Parse(sql));
140 Assert.IsNotNull(expression);
141 Assert.IsInstanceOf<SqlQueryExpression>(expression);
143 var queryExpression = (SqlQueryExpression) expression;
144 Assert.IsNotEmpty(queryExpression.SelectColumns);
145 Assert.IsInstanceOf<SqlReferenceExpression>(queryExpression.SelectColumns.First().Expression);
146 Assert.IsInstanceOf<SqlReferenceExpression>(queryExpression.SelectColumns.Skip(1).First().Expression);
147 Assert.IsNotNull(queryExpression.FromClause);
148 Assert.IsNotEmpty(queryExpression.FromClause.AllTables);
149 Assert.AreEqual(2, queryExpression.FromClause.AllTables.Count());
150 Assert.AreEqual(1, queryExpression.FromClause.JoinPartCount);
151 Assert.IsNotNull(queryExpression.FromClause.GetJoinPart(0));
152 Assert.AreEqual(
JoinType.Inner, queryExpression.FromClause.GetJoinPart(0).JoinType);
153 Assert.IsNotNull(queryExpression.FromClause.GetJoinPart(0).OnExpression);
154 Assert.IsInstanceOf<SqlBinaryExpression>(queryExpression.FromClause.GetJoinPart(0).OnExpression);
JoinType
Enumerates the kind of group join in a selection query.