From 5683a6215fb4d524e32b15a1c9a3942440cd1dab Mon Sep 17 00:00:00 2001 From: huangyangjun Date: Tue, 13 Nov 2012 23:52:34 +0800 Subject: [PATCH 1/3] add OracleOutputVisitor prettyFormat test --- .../sql/oracle/demo/OutputVisitorTest.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/test/java/com/alibaba/druid/sql/oracle/demo/OutputVisitorTest.java diff --git a/src/test/java/com/alibaba/druid/sql/oracle/demo/OutputVisitorTest.java b/src/test/java/com/alibaba/druid/sql/oracle/demo/OutputVisitorTest.java new file mode 100644 index 0000000000..21df2bcd7a --- /dev/null +++ b/src/test/java/com/alibaba/druid/sql/oracle/demo/OutputVisitorTest.java @@ -0,0 +1,46 @@ +package com.alibaba.druid.sql.oracle.demo; + +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.sql.visitor.SQLASTVisitor; +import com.alibaba.druid.util.JdbcUtils; +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 OutputVisitorTest { + @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(); + + SQLASTOutputVisitor visitor = new OracleOutputVisitor(out); + for(SQLStatement statement : stmtList) { + statement.accept(visitor); + } + // PrettyFormat use default : true + System.out.println(out); + System.out.println("=========================================\n"); + + out.setLength(0); + visitor = new OracleOutputVisitor(out); + // setPrettyFormat : false + visitor.setPrettyFormat(false); + for(SQLStatement statement : stmtList) { + statement.accept(visitor); + } + System.out.println(out); + } +} From f3189c3ede961bdb9d18da57f1c958a1000939a8 Mon Sep 17 00:00:00 2001 From: huangyangjun Date: Wed, 14 Nov 2012 00:13:59 +0800 Subject: [PATCH 2/3] add oracle output visitor pretty format test --- .../visitor/OracleOutputVisitorTest_PrettyFormat.java} | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) rename src/test/java/com/alibaba/druid/{sql/oracle/demo/OutputVisitorTest.java => bvt/sql/oracle/visitor/OracleOutputVisitorTest_PrettyFormat.java} (92%) diff --git a/src/test/java/com/alibaba/druid/sql/oracle/demo/OutputVisitorTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_PrettyFormat.java similarity index 92% rename from src/test/java/com/alibaba/druid/sql/oracle/demo/OutputVisitorTest.java rename to src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_PrettyFormat.java index 21df2bcd7a..174c60f1a8 100644 --- a/src/test/java/com/alibaba/druid/sql/oracle/demo/OutputVisitorTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/visitor/OracleOutputVisitorTest_PrettyFormat.java @@ -1,11 +1,10 @@ -package com.alibaba.druid.sql.oracle.demo; +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.sql.visitor.SQLASTVisitor; import com.alibaba.druid.util.JdbcUtils; import org.junit.Test; @@ -18,7 +17,7 @@ import java.util.List; * Time: 下午7:16 * Test OralceOutputVisitor and start with ... connect by parser. */ -public class OutputVisitorTest { +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"; From 4a148c4fedc2f745618be010f0afa011afe5fcd2 Mon Sep 17 00:00:00 2001 From: huangyangjun Date: Wed, 14 Nov 2012 00:30:16 +0800 Subject: [PATCH 3/3] add oracle output visitor pretty format test --- .../OracleOutputVisitorTest_PrettyFormat.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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 index 174c60f1a8..125922191a 100644 --- 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 @@ -6,6 +6,7 @@ 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; @@ -24,14 +25,14 @@ public class OracleOutputVisitorTest_PrettyFormat { 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); } - // PrettyFormat use default : true - System.out.println(out); - System.out.println("=========================================\n"); + + 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); @@ -40,6 +41,7 @@ public class OracleOutputVisitorTest_PrettyFormat { for(SQLStatement statement : stmtList) { statement.accept(visitor); } - System.out.println(out); + expectResult = "SELECT * FROM ge_rms_company START WITH comcode = '00' CONNECT BY NOCYCLE PRIOR comcode = uppercomcode"; + Assert.assertEquals(expectResult, out.toString()); } }