package com.alibaba.druid.bvt.sql.oracle.visitor; import java.util.List; import org.junit.Assert; import org.junit.Test; import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.dialect.oracle.visitor.OracleOutputVisitor; import com.alibaba.druid.sql.parser.SQLParserUtils; import com.alibaba.druid.sql.parser.SQLStatementParser; import com.alibaba.druid.sql.visitor.SQLASTOutputVisitor; import com.alibaba.druid.util.JdbcUtils; /** * * User: carvin * Date: 12-11-13 * Time: 下午7:16 * Test OralceOutputVisitor and start with ... connect by parser. */ public class OracleOutputVisitorTest_PrettyFormat { @Test public void testConnectByParserAndPrettyFormatOutput() { String sql = "select * from ge_rms_company start with comcode = '00' connect by nocycle prior comcode = uppercomcode"; SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, JdbcUtils.ORACLE); List<SQLStatement> stmtList = parser.parseStatementList(); StringBuilder out = new StringBuilder(); // PrettyFormat use default : true SQLASTOutputVisitor visitor = new OracleOutputVisitor(out); for(SQLStatement statement : stmtList) { statement.accept(visitor); } String expectResult = "SELECT *\nFROM ge_rms_company\nSTART WITH comcode = '00'\nCONNECT BY NOCYCLE PRIOR comcode = uppercomcode;\n"; Assert.assertEquals(expectResult, out.toString()); out.setLength(0); visitor = new OracleOutputVisitor(out); // setPrettyFormat : false visitor.setPrettyFormat(false); for(SQLStatement statement : stmtList) { statement.accept(visitor); } expectResult = "SELECT * FROM ge_rms_company START WITH comcode = '00' CONNECT BY NOCYCLE PRIOR comcode = uppercomcode"; Assert.assertEquals(expectResult, out.toString()); } }