diff --git a/pom.xml b/pom.xml index c6a25ee675..f24725c006 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.alibaba druid - 0.1.10 + 0.1.11-SNAPSHOT druid diff --git a/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_delete.java b/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_delete.java new file mode 100644 index 0000000000..925c66eba2 --- /dev/null +++ b/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_delete.java @@ -0,0 +1,40 @@ +package com.alibaba.druid.sql.oracle.bvt.visitor; + +import java.util.List; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser; +import com.alibaba.druid.sql.dialect.oracle.visitor.OracleOutputVisitor; +import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor; +import com.alibaba.druid.stat.TableStat.Column; + + +public class OracleOutputVisitorTest_delete extends TestCase { + public void test_0() throws Exception { + String sql = "DELETE FROM employee where id = 3"; + + OracleStatementParser parser = new OracleStatementParser(sql); + List statementList = parser.parseStatementList(); + SQLStatement stmt = statementList.get(0); + + Assert.assertEquals(1, statementList.size()); + + OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); + stmt.accept(visitor); + + Assert.assertEquals(1, visitor.getTables().size()); + Assert.assertEquals(true, visitor.containsTable("employee")); + + Assert.assertEquals(1, visitor.getFields().size()); + Assert.assertEquals(true, visitor.getFields().contains(new Column("employee", "id"))); + + StringBuilder buf = new StringBuilder(); + OracleOutputVisitor outputVisitor = new OracleOutputVisitor(buf); + stmt.accept(outputVisitor); + Assert.assertEquals("DELETE FROM employee WHERE id = 3;\n", buf.toString()); + + } +} diff --git a/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_forupdate.java b/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_forupdate.java new file mode 100644 index 0000000000..a019256286 --- /dev/null +++ b/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_forupdate.java @@ -0,0 +1,40 @@ +package com.alibaba.druid.sql.oracle.bvt.visitor; + +import java.util.List; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser; +import com.alibaba.druid.sql.dialect.oracle.visitor.OracleOutputVisitor; +import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor; +import com.alibaba.druid.stat.TableStat.Column; + + +public class OracleOutputVisitorTest_forupdate extends TestCase { + public void test_0() throws Exception { + String sql = "SELECT salary from employee for update"; + + OracleStatementParser parser = new OracleStatementParser(sql); + List statementList = parser.parseStatementList(); + SQLStatement stmt = statementList.get(0); + + Assert.assertEquals(1, statementList.size()); + + OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); + stmt.accept(visitor); + + Assert.assertEquals(1, visitor.getTables().size()); + Assert.assertEquals(true, visitor.containsTable("employee")); + + Assert.assertEquals(1, visitor.getFields().size()); + Assert.assertEquals(true, visitor.getFields().contains(new Column("employee", "salary"))); + + StringBuilder buf = new StringBuilder(); + OracleOutputVisitor outputVisitor = new OracleOutputVisitor(buf); + stmt.accept(outputVisitor); + Assert.assertEquals("SELECT salary\nFROM employee\nFOR UPDATE;\n", buf.toString()); + + } +} diff --git a/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_orderBy.java b/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_orderBy.java new file mode 100644 index 0000000000..71a789d0f0 --- /dev/null +++ b/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_orderBy.java @@ -0,0 +1,41 @@ +package com.alibaba.druid.sql.oracle.bvt.visitor; + +import java.util.List; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser; +import com.alibaba.druid.sql.dialect.oracle.visitor.OracleOutputVisitor; +import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor; +import com.alibaba.druid.stat.TableStat.Column; + + +public class OracleOutputVisitorTest_orderBy extends TestCase { + public void test_0() throws Exception { + String sql = "SELECT salary from employee order by name"; + + OracleStatementParser parser = new OracleStatementParser(sql); + List statementList = parser.parseStatementList(); + SQLStatement stmt = statementList.get(0); + + Assert.assertEquals(1, statementList.size()); + + OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor(); + stmt.accept(visitor); + + Assert.assertEquals(1, visitor.getTables().size()); + Assert.assertEquals(true, visitor.containsTable("employee")); + + Assert.assertEquals(2, visitor.getFields().size()); + Assert.assertEquals(true, visitor.getFields().contains(new Column("employee", "salary"))); + Assert.assertEquals(true, visitor.getFields().contains(new Column("employee", "name"))); + + StringBuilder buf = new StringBuilder(); + OracleOutputVisitor outputVisitor = new OracleOutputVisitor(buf); + stmt.accept(outputVisitor); + Assert.assertEquals("SELECT salary\nFROM employee\nORDER BY name;\n", buf.toString()); + + } +}