fun testParameters()

in android-lang/testSrc/com/android/tools/idea/lang/androidSql/parser/AndroidSqlParserTest.kt [211:392]


  fun testParameters() {
    assertEquals(
      """
      FILE
        AndroidSqlSelectStatementImpl(SELECT_STATEMENT)
          AndroidSqlSelectCoreImpl(SELECT_CORE)
            AndroidSqlSelectCoreSelectImpl(SELECT_CORE_SELECT)
              PsiElement(SELECT)('SELECT')
              AndroidSqlResultColumnsImpl(RESULT_COLUMNS)
                AndroidSqlResultColumnImpl(RESULT_COLUMN)
                  PsiElement(*)('*')
              AndroidSqlFromClauseImpl(FROM_CLAUSE)
                PsiElement(FROM)('FROM')
                AndroidSqlTableOrSubqueryImpl(TABLE_OR_SUBQUERY)
                  AndroidSqlFromTableImpl(FROM_TABLE)
                    AndroidSqlDefinedTableNameImpl(DEFINED_TABLE_NAME)
                      PsiElement(IDENTIFIER)('user')
              AndroidSqlWhereClauseImpl(WHERE_CLAUSE)
                PsiElement(WHERE)('WHERE')
                AndroidSqlEquivalenceExpressionImpl(EQUIVALENCE_EXPRESSION)
                  AndroidSqlColumnRefExpressionImpl(COLUMN_REF_EXPRESSION)
                    AndroidSqlColumnNameImpl(COLUMN_NAME)
                      PsiElement(IDENTIFIER)('id')
                  PsiElement(=)('=')
                  AndroidSqlLiteralExpressionImpl(LITERAL_EXPRESSION)
                    AndroidSqlBindParameterImpl(BIND_PARAMETER)
                      PsiElement(NUMBERED_PARAMETER)('?')
      """
        .trimIndent(),
      toParseTreeText("SELECT * FROM user WHERE id = ?"),
    )
    assertEquals(
      """
      FILE
        AndroidSqlSelectStatementImpl(SELECT_STATEMENT)
          AndroidSqlSelectCoreImpl(SELECT_CORE)
            AndroidSqlSelectCoreSelectImpl(SELECT_CORE_SELECT)
              PsiElement(SELECT)('SELECT')
              AndroidSqlResultColumnsImpl(RESULT_COLUMNS)
                AndroidSqlResultColumnImpl(RESULT_COLUMN)
                  PsiElement(*)('*')
              AndroidSqlFromClauseImpl(FROM_CLAUSE)
                PsiElement(FROM)('FROM')
                AndroidSqlTableOrSubqueryImpl(TABLE_OR_SUBQUERY)
                  AndroidSqlFromTableImpl(FROM_TABLE)
                    AndroidSqlDefinedTableNameImpl(DEFINED_TABLE_NAME)
                      PsiElement(IDENTIFIER)('user')
              AndroidSqlWhereClauseImpl(WHERE_CLAUSE)
                PsiElement(WHERE)('WHERE')
                AndroidSqlEquivalenceExpressionImpl(EQUIVALENCE_EXPRESSION)
                  AndroidSqlColumnRefExpressionImpl(COLUMN_REF_EXPRESSION)
                    AndroidSqlColumnNameImpl(COLUMN_NAME)
                      PsiElement(IDENTIFIER)('id')
                  PsiElement(=)('=')
                  AndroidSqlLiteralExpressionImpl(LITERAL_EXPRESSION)
                    AndroidSqlBindParameterImpl(BIND_PARAMETER)
                      PsiElement(NUMBERED_PARAMETER)('?1')
      """
        .trimIndent(),
      toParseTreeText("SELECT * FROM user WHERE id = ?1"),
    )
    assertEquals(
      """
      FILE
        AndroidSqlSelectStatementImpl(SELECT_STATEMENT)
          AndroidSqlSelectCoreImpl(SELECT_CORE)
            AndroidSqlSelectCoreSelectImpl(SELECT_CORE_SELECT)
              PsiElement(SELECT)('SELECT')
              AndroidSqlResultColumnsImpl(RESULT_COLUMNS)
                AndroidSqlResultColumnImpl(RESULT_COLUMN)
                  PsiElement(*)('*')
              AndroidSqlFromClauseImpl(FROM_CLAUSE)
                PsiElement(FROM)('FROM')
                AndroidSqlTableOrSubqueryImpl(TABLE_OR_SUBQUERY)
                  AndroidSqlFromTableImpl(FROM_TABLE)
                    AndroidSqlDefinedTableNameImpl(DEFINED_TABLE_NAME)
                      PsiElement(IDENTIFIER)('user')
              AndroidSqlWhereClauseImpl(WHERE_CLAUSE)
                PsiElement(WHERE)('WHERE')
                AndroidSqlEquivalenceExpressionImpl(EQUIVALENCE_EXPRESSION)
                  AndroidSqlColumnRefExpressionImpl(COLUMN_REF_EXPRESSION)
                    AndroidSqlColumnNameImpl(COLUMN_NAME)
                      PsiElement(IDENTIFIER)('id')
                  PsiElement(=)('=')
                  AndroidSqlLiteralExpressionImpl(LITERAL_EXPRESSION)
                    AndroidSqlBindParameterImpl(BIND_PARAMETER)
                      PsiElement(NAMED_PARAMETER)(':userId')
      """
        .trimIndent(),
      toParseTreeText("SELECT * FROM user WHERE id = :userId"),
    )
    assertEquals(
      """
      FILE
        AndroidSqlSelectStatementImpl(SELECT_STATEMENT)
          AndroidSqlSelectCoreImpl(SELECT_CORE)
            AndroidSqlSelectCoreSelectImpl(SELECT_CORE_SELECT)
              PsiElement(SELECT)('SELECT')
              AndroidSqlResultColumnsImpl(RESULT_COLUMNS)
                AndroidSqlResultColumnImpl(RESULT_COLUMN)
                  PsiElement(*)('*')
              AndroidSqlFromClauseImpl(FROM_CLAUSE)
                PsiElement(FROM)('FROM')
                AndroidSqlTableOrSubqueryImpl(TABLE_OR_SUBQUERY)
                  AndroidSqlFromTableImpl(FROM_TABLE)
                    AndroidSqlDefinedTableNameImpl(DEFINED_TABLE_NAME)
                      PsiElement(IDENTIFIER)('user')
              AndroidSqlWhereClauseImpl(WHERE_CLAUSE)
                PsiElement(WHERE)('WHERE')
                AndroidSqlEquivalenceExpressionImpl(EQUIVALENCE_EXPRESSION)
                  AndroidSqlColumnRefExpressionImpl(COLUMN_REF_EXPRESSION)
                    AndroidSqlColumnNameImpl(COLUMN_NAME)
                      PsiElement(IDENTIFIER)('id')
                  PsiElement(=)('=')
                  AndroidSqlLiteralExpressionImpl(LITERAL_EXPRESSION)
                    AndroidSqlBindParameterImpl(BIND_PARAMETER)
                      PsiElement(NAMED_PARAMETER)('@userId')
      """
        .trimIndent(),
      toParseTreeText("SELECT * FROM user WHERE id = @userId"),
    )
    assertEquals(
      """
      FILE
        AndroidSqlSelectStatementImpl(SELECT_STATEMENT)
          AndroidSqlSelectCoreImpl(SELECT_CORE)
            AndroidSqlSelectCoreSelectImpl(SELECT_CORE_SELECT)
              PsiElement(SELECT)('SELECT')
              AndroidSqlResultColumnsImpl(RESULT_COLUMNS)
                AndroidSqlResultColumnImpl(RESULT_COLUMN)
                  PsiElement(*)('*')
              AndroidSqlFromClauseImpl(FROM_CLAUSE)
                PsiElement(FROM)('FROM')
                AndroidSqlTableOrSubqueryImpl(TABLE_OR_SUBQUERY)
                  AndroidSqlFromTableImpl(FROM_TABLE)
                    AndroidSqlDefinedTableNameImpl(DEFINED_TABLE_NAME)
                      PsiElement(IDENTIFIER)('user')
              AndroidSqlWhereClauseImpl(WHERE_CLAUSE)
                PsiElement(WHERE)('WHERE')
                AndroidSqlEquivalenceExpressionImpl(EQUIVALENCE_EXPRESSION)
                  AndroidSqlColumnRefExpressionImpl(COLUMN_REF_EXPRESSION)
                    AndroidSqlColumnNameImpl(COLUMN_NAME)
                      PsiElement(IDENTIFIER)('id')
                  PsiElement(=)('=')
                  AndroidSqlLiteralExpressionImpl(LITERAL_EXPRESSION)
                    AndroidSqlBindParameterImpl(BIND_PARAMETER)
                      PsiElement(NAMED_PARAMETER)('${'$'}userId')
      """
        .trimIndent(),
      toParseTreeText("SELECT * FROM user WHERE id = \$userId"),
    )
    assertEquals(
      """
      FILE
        AndroidSqlSelectStatementImpl(SELECT_STATEMENT)
          AndroidSqlSelectCoreImpl(SELECT_CORE)
            AndroidSqlSelectCoreSelectImpl(SELECT_CORE_SELECT)
              PsiElement(SELECT)('SELECT')
              AndroidSqlResultColumnsImpl(RESULT_COLUMNS)
                AndroidSqlResultColumnImpl(RESULT_COLUMN)
                  PsiElement(*)('*')
              AndroidSqlFromClauseImpl(FROM_CLAUSE)
                PsiElement(FROM)('FROM')
                AndroidSqlTableOrSubqueryImpl(TABLE_OR_SUBQUERY)
                  AndroidSqlFromTableImpl(FROM_TABLE)
                    AndroidSqlDefinedTableNameImpl(DEFINED_TABLE_NAME)
                      PsiElement(IDENTIFIER)('user')
              AndroidSqlWhereClauseImpl(WHERE_CLAUSE)
                PsiElement(WHERE)('WHERE')
                AndroidSqlEquivalenceExpressionImpl(EQUIVALENCE_EXPRESSION)
                  AndroidSqlColumnRefExpressionImpl(COLUMN_REF_EXPRESSION)
                    AndroidSqlColumnNameImpl(COLUMN_NAME)
                      PsiElement(IDENTIFIER)('id')
                  PsiElement(=)('=')
                  AndroidSqlLiteralExpressionImpl(LITERAL_EXPRESSION)
                    AndroidSqlBindParameterImpl(BIND_PARAMETER)
                      PsiElement(NAMED_PARAMETER)(':userId')
      """
        .trimIndent(),
      toParseTreeText("SELECT * FROM user WHERE id = :userId"),
    )
  }