From d994ab09d26120fa00bda2866f0a01e97f2b0efa Mon Sep 17 00:00:00 2001 From: wenshao Date: Tue, 20 Sep 2011 10:30:31 +0000 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85Oracle=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/druid/trunk@888 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../OracleOutputVisitorTest_selectJoin.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_selectJoin.java diff --git a/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_selectJoin.java b/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_selectJoin.java new file mode 100644 index 0000000000..1bc9076494 --- /dev/null +++ b/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_selectJoin.java @@ -0,0 +1,43 @@ +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_selectJoin extends TestCase { + public void test_0() throws Exception { + String sql = "SELECT e.salary from employee e join department d where e.depId = d.id"; + + 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(2, visitor.getTables().size()); + Assert.assertEquals(true, visitor.containsTable("employee")); + Assert.assertEquals(true, visitor.containsTable("department")); + + Assert.assertEquals(3, visitor.getFields().size()); + Assert.assertEquals(true, visitor.getFields().contains(new Column("employee", "salary"))); + Assert.assertEquals(true, visitor.getFields().contains(new Column("employee", "depId"))); + Assert.assertEquals(true, visitor.getFields().contains(new Column("department", "id"))); + + StringBuilder buf = new StringBuilder(); + OracleOutputVisitor outputVisitor = new OracleOutputVisitor(buf); + stmt.accept(outputVisitor); + Assert.assertEquals("SELECT e.salary\nFROM employee e JOIN department d\nWHERE e.depId = d.id;\n", buf.toString()); + + } +}