Merge pull request #195 from carvinhappy/master

增加OracleOutputVisitor prettyFormat 测试用例
This commit is contained in:
温高铁
2012-11-13 08:32:19 -08:00
@@ -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<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());
}
}