diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_PrettyFormat.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_PrettyFormat.java new file mode 100644 index 0000000000..125922191a --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_PrettyFormat.java @@ -0,0 +1,47 @@ +package com.alibaba.druid.bvt.sql.oracle.visitor; + +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; +import junit.framework.Assert; +import org.junit.Test; + +import java.util.List; + +/** + * + * 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 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()); + } +}