public void GetStatementAndResetBuilder ()
{
var statementBuilder = new SqlStatementBuilder
{
DataInfo = new TestStreamedValueInfo (typeof (Cook)),
TopExpression = ExpressionHelper.CreateExpression(),
IsDistinctQuery = true,
SelectProjection = new AggregationExpression(typeof(int), Expression.Constant (1),AggregationModifier.Min),
SqlTables = { new SqlTable (new ResolvedSimpleTableInfo (typeof (Cook), "CookTable", "c"), JoinSemantics.Inner) },
WhereCondition = Expression.Constant (true),
RowNumberSelector = Expression.Constant ("selector"),
CurrentRowNumberOffset = Expression.Constant (1),
GroupByExpression = Expression.Constant ("group"),
Orderings = { new Ordering (Expression.Constant ("order"), OrderingDirection.Desc) }
};
var sqlStatement = statementBuilder.GetSqlStatement();
var result = statementBuilder.GetStatementAndResetBuilder();
Assert.That (result, Is.Not.SameAs (sqlStatement));
Assert.That (result, Is.EqualTo (sqlStatement));
Assert.That (statementBuilder.DataInfo, Is.Null);
Assert.That (statementBuilder.TopExpression, Is.Null);
Assert.That (statementBuilder.IsDistinctQuery, Is.False);
Assert.That (statementBuilder.SelectProjection, Is.Null);
Assert.That (statementBuilder.SqlTables, Is.Empty);
Assert.That (statementBuilder.Orderings, Is.Empty);
Assert.That (statementBuilder.WhereCondition, Is.Null);
Assert.That (statementBuilder.RowNumberSelector, Is.Null);
Assert.That (statementBuilder.CurrentRowNumberOffset, Is.Null);
Assert.That (statementBuilder.GroupByExpression, Is.Null);
}