From ca0d646b38250e6898449306771937098e7fc40d Mon Sep 17 00:00:00 2001 From: wenshao Date: Tue, 20 Sep 2011 01:14:58 +0000 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=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@877 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../OracleOutputVisitorTest_Aggregate.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_Aggregate.java diff --git a/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_Aggregate.java b/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_Aggregate.java new file mode 100644 index 0000000000..e76a6f49ce --- /dev/null +++ b/src/test/java/com/alibaba/druid/sql/oracle/bvt/visitor/OracleOutputVisitorTest_Aggregate.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_Aggregate extends TestCase { + public void test_0() throws Exception { + String sql = "SELECT MAX(salary) from emp"; + + 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("emp")); + + Assert.assertEquals(1, visitor.getFields().size()); + Assert.assertEquals(true, visitor.getFields().contains(new Column("emp", "salary"))); + + StringBuilder buf = new StringBuilder(); + OracleOutputVisitor outputVisitor = new OracleOutputVisitor(buf); + stmt.accept(outputVisitor); + Assert.assertEquals("SELECT MAX(salary)\nFROM emp;\n", buf.toString()); + + } +}