-
Notifications
You must be signed in to change notification settings - Fork 77
Expand file tree
/
Copy pathtestGroupBy.java
More file actions
38 lines (28 loc) · 1.49 KB
/
Copy pathtestGroupBy.java
File metadata and controls
38 lines (28 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package common;
import gudusoft.gsqlparser.EDbVendor;
import gudusoft.gsqlparser.TGSqlParser;
import gudusoft.gsqlparser.TSourceToken;
import gudusoft.gsqlparser.nodes.TExpression;
import gudusoft.gsqlparser.nodes.TGroupBy;
import gudusoft.gsqlparser.nodes.TGroupByItemList;
import gudusoft.gsqlparser.stmt.TSelectSqlStatement;
import junit.framework.TestCase;
public class testGroupBy extends TestCase {
public void testGroupByClause() {
TGSqlParser tgSqlParser = new TGSqlParser(EDbVendor.dbvhive);
tgSqlParser.sqltext = "SELECT Dept,count(*) as NUM FROM employee GROUP BY DEPT HAVING NUM > 30000";
assertTrue(tgSqlParser.parse() == 0);
TSelectSqlStatement sqlstatements = (TSelectSqlStatement) tgSqlParser.getSqlstatements().get(0);
TGroupBy groupByClause = sqlstatements.getGroupByClause();
assertTrue(groupByClause.toString().equalsIgnoreCase("GROUP BY DEPT HAVING NUM > 30000"));
TGroupByItemList items = groupByClause.getItems();
assertTrue(items.toString().equalsIgnoreCase("DEPT"));
assertTrue(items.getGroupByItem(0).toString().equalsIgnoreCase("DEPT"));
TSourceToken group = groupByClause.getGROUP();
assertTrue(group.toString().equalsIgnoreCase("GROUP"));
TSourceToken by = groupByClause.getBY();
assertTrue(by.toString().equalsIgnoreCase("BY"));
TExpression havingClause = groupByClause.getHavingClause();
assertTrue(havingClause.toString().equalsIgnoreCase("NUM > 30000"));
}
}