### Question:
SQLParsingEngine { public SQLStatement parse() { AbstractSQLParser sqlParser = getSQLParser(); sqlParser.skipIfEqual(Symbol.SEMI); if (sqlParser.equalAny(DefaultKeyword.WITH)) { skipWith(sqlParser); } if (sqlParser.equalAny(DefaultKeyword.SELECT)) { return SelectParserFactory.newInstance(sqlParser).parse(); } if (sqlParser.equalAny(DefaultKeyword.INSERT)) { return InsertParserFactory.newInstance(shardingRule, sqlParser).parse(); } if (sqlParser.equalAny(DefaultKeyword.UPDATE)) { return UpdateParserFactory.newInstance(sqlParser).parse(); } if (sqlParser.equalAny(DefaultKeyword.DELETE)) { return DeleteParserFactory.newInstance(sqlParser).parse(); } if (sqlParser.equalAny(DefaultKeyword.CREATE)) { return CreateParserFactory.newInstance(sqlParser).parse(); } if (sqlParser.equalAny(DefaultKeyword.ALTER)) { return AlterParserFactory.newInstance(sqlParser).parse(); } if (sqlParser.equalAny(DefaultKeyword.DROP)) { return DropParserFactory.newInstance(sqlParser).parse(); } if (sqlParser.equalAny(DefaultKeyword.TRUNCATE)) { return TruncateParserFactory.newInstance(sqlParser).parse(); } throw new SQLParsingUnsupportedException(sqlParser.getLexer().getCurrentToken().getType()); }  SQLStatement parse();  }### Answer:
@Test public void assertStatement() { for (DatabaseType each : SQLStatementHelper.getTypes(getTestCaseName())) { assertStatement(new SQLParsingEngine(each, SqlPlaceholderUtil.replaceStatement(SQLStatementHelper.getSql(getTestCaseName()), getParameters()), buildShardingRule()).parse()); } }
@Test public void assertPreparedStatement() { for (DatabaseType each : SQLStatementHelper.getTypes(getTestCaseName())) { assertPreparedStatement(new SQLParsingEngine(each, SqlPlaceholderUtil.replacePreparedStatement(SQLStatementHelper.getSql(getTestCaseName())), buildShardingRule()).parse()); } }