Provides a default implementation of ISqlGenerationStage.
Inheritance: ISqlGenerationStage
    public void GenerateTextForSelectExpression ()
    {
      var stage = new DefaultSqlGenerationStage();

      stage.GenerateTextForSelectExpression (_commandBuilder, _sqlStatement.SelectProjection);

      Assert.That (_commandBuilder.GetCommandText(), Is.EqualTo ("[t].[ID],[t].[Name],[t].[City]"));
    }
    public void GenerateTextForFromTable ()
    {
      var stage = new DefaultSqlGenerationStage();

      stage.GenerateTextForFromTable (_commandBuilder, _sqlStatement.SqlTables[0], true);

      Assert.That (_commandBuilder.GetCommandText(), Is.EqualTo ("[Table] AS [t]"));
    }
 private void CallGenerateTextForNonSelectExpression (DefaultSqlGenerationStage mock, Expression expression)
 {
   PrivateInvoke.InvokeNonPublicMethod (mock, "GenerateTextForNonSelectExpression", _commandBuilder, expression);
 }
    public void GenerateTextForOuterSqlStatement ()
    {
      var sqlStatement = SqlStatementModelObjectMother.CreateSqlStatement (
          _entityExpression, new[] { new SqlTable (new ResolvedSimpleTableInfo (typeof (int), "Table", "t"), JoinSemantics.Inner) });

      var stage = new DefaultSqlGenerationStage();

      stage.GenerateTextForOuterSqlStatement (_commandBuilder, sqlStatement);

      Assert.That (_commandBuilder.GetCommandText (), Is.EqualTo ("SELECT [t].[ID],[t].[Name],[t].[City] FROM [Table] AS [t]"));

      var inMemoryProjection = _commandBuilder.GetInMemoryProjectionBody();
      Assert.That (inMemoryProjection, Is.AssignableTo (typeof (MethodCallExpression)));

      var methodCallExpression = (MethodCallExpression) inMemoryProjection;
      Assert.That (methodCallExpression.Method, Is.EqualTo ((typeof (IDatabaseResultRow).GetMethod ("GetEntity").MakeGenericMethod (sqlStatement.SelectProjection.Type))));
      Assert.That (methodCallExpression.Arguments.Count, Is.EqualTo (1));
      Assert.That (((ColumnID[]) ((ConstantExpression) methodCallExpression.Arguments[0]).Value)[0].ColumnName, Is.EqualTo ("ID"));
      Assert.That (((ColumnID[]) ((ConstantExpression) methodCallExpression.Arguments[0]).Value)[1].ColumnName, Is.EqualTo ("Name"));
      Assert.That (((ColumnID[]) ((ConstantExpression) methodCallExpression.Arguments[0]).Value)[2].ColumnName, Is.EqualTo ("City"));
    }
    public void GenerateTextForSqlStatement ()
    {
      var sqlStatement = SqlStatementModelObjectMother.CreateSqlStatement (
          _entityExpression, new[] { new SqlTable (new ResolvedSimpleTableInfo (typeof (int), "Table", "t"), JoinSemantics.Inner) });

      var stage = new DefaultSqlGenerationStage();

      stage.GenerateTextForSqlStatement (_commandBuilder, sqlStatement);

      Assert.That (_commandBuilder.GetCommandText(), Is.EqualTo ("SELECT [t].[ID],[t].[Name],[t].[City] FROM [Table] AS [t]"));
    }
    public void GenerateTextForOrdering ()
    {
      var ordering = new Ordering (Expression.Constant (1), OrderingDirection.Asc);

      var stage = new DefaultSqlGenerationStage();

      stage.GenerateTextForOrdering (_commandBuilder, ordering);

      Assert.That (_commandBuilder.GetCommandText(), Is.EqualTo ("(SELECT @1) ASC"));
    }