1 /***
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package test.net.sourceforge.pmd.symboltable;
5
6 import junit.framework.TestCase;
7 import net.sourceforge.pmd.ast.ASTFormalParameter;
8 import net.sourceforge.pmd.ast.ASTName;
9 import net.sourceforge.pmd.ast.ASTTryStatement;
10 import net.sourceforge.pmd.ast.ASTType;
11 import net.sourceforge.pmd.ast.ASTVariableDeclaratorId;
12 import net.sourceforge.pmd.symboltable.LocalScope;
13 import net.sourceforge.pmd.symboltable.VariableNameDeclaration;
14
15 public class VariableNameDeclarationTest extends TestCase {
16
17 public void testConstructor() {
18 ASTVariableDeclaratorId exp = createNode("foo", 10);
19 LocalScope scope = new LocalScope();
20 exp.setScope(scope);
21 VariableNameDeclaration decl = new VariableNameDeclaration(exp);
22 assertEquals("foo", decl.getImage());
23 assertEquals(10, decl.getLine());
24 }
25
26 public void testExceptionBlkParam() {
27 ASTVariableDeclaratorId id = new ASTVariableDeclaratorId(3);
28 id.testingOnly__setBeginLine(10);
29 id.setImage("foo");
30
31 ASTFormalParameter param = new ASTFormalParameter(2);
32 id.jjtSetParent(param);
33
34 ASTTryStatement tryStmt = new ASTTryStatement(1);
35 param.jjtSetParent(tryStmt);
36
37 VariableNameDeclaration decl = new VariableNameDeclaration(id);
38 assertTrue(decl.isExceptionBlockParameter());
39 }
40
41 public void testMethodParam() {
42 ASTVariableDeclaratorId id = new ASTVariableDeclaratorId(3);
43 id.testingOnly__setBeginLine(10);
44 id.setImage("foo");
45
46 ASTFormalParameter param = new ASTFormalParameter(2);
47 id.jjtSetParent(param);
48
49 ASTType type = new ASTType(4);
50 param.jjtAddChild(type, 0);
51
52 ASTName name = new ASTName(5);
53 type.jjtAddChild(name, 0);
54
55 assertEquals(name, id.getTypeNameNode());
56 }
57
58 private static ASTVariableDeclaratorId createNode(String image, int line) {
59 ASTVariableDeclaratorId node = new ASTVariableDeclaratorId(1);
60 node.setImage(image);
61 node.testingOnly__setBeginLine(line);
62 return node;
63 }
64 }
This page was automatically generated by Maven