-
Notifications
You must be signed in to change notification settings - Fork 77
Expand file tree
/
Copy pathtestMssqlProcedure.java
More file actions
55 lines (46 loc) · 2.24 KB
/
Copy pathtestMssqlProcedure.java
File metadata and controls
55 lines (46 loc) · 2.24 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package common;
/*
* Date: 2010-8-30
* Time: 15:09:38
*/
import junit.framework.TestCase;
import gudusoft.gsqlparser.TGSqlParser;
import gudusoft.gsqlparser.EDbVendor;
import gudusoft.gsqlparser.TBaseType;
import gudusoft.gsqlparser.nodes.TParameterDeclaration;
import gudusoft.gsqlparser.stmt.mssql.TMssqlCreateProcedure;
public class testMssqlProcedure extends TestCase {
private TGSqlParser parser = null;
protected void setUp() throws Exception {
super.setUp();
parser = new TGSqlParser(EDbVendor.dbvmssql);
}
protected void tearDown() throws Exception {
parser = null;
super.tearDown();
}
public void test1(){
parser.sqltext = "CREATE PROCEDURE titles_sum @TITLE varchar(40) = '%', @SUM money OUTPUT\n" +
"AS\n" +
"SELECT 'Title Name' = title\n" +
"FROM titles \n" +
"WHERE title LIKE @TITLE \n" +
"SELECT @SUM = SUM(price)\n" +
"FROM titles\n" +
"WHERE title LIKE @TITLE";
assertTrue(parser.parse() == 0);
TMssqlCreateProcedure createProcedure = (TMssqlCreateProcedure)parser.sqlstatements.get(0);
assertTrue(createProcedure.getProcedureName().toString().equalsIgnoreCase("titles_sum"));
assertTrue(createProcedure.getParameterDeclarations().size() == 2);
TParameterDeclaration parameter1 = createProcedure.getParameterDeclarations().getParameterDeclarationItem(0);
assertTrue(parameter1.getParameterName().toString().equalsIgnoreCase("@TITLE"));
assertTrue(parameter1.getDataType().toString().equalsIgnoreCase("varchar(40)"));
assertTrue(parameter1.getHowtoSetValue() == TBaseType.howtoSetValue_assign);
assertTrue(parameter1.getDefaultValue().toString().equalsIgnoreCase("'%'"));
TParameterDeclaration parameter2 = createProcedure.getParameterDeclarations().getParameterDeclarationItem(1);
assertTrue(parameter2.getParameterName().toString().equalsIgnoreCase("@SUM"));
assertTrue(parameter2.getDataType().toString().equalsIgnoreCase("money"));
assertTrue(parameter2.getMode() == TBaseType.parameter_mode_output);
assertTrue(createProcedure.getBodyStatements().size() == 2);
}
}