1 package test.net.sourceforge.pmd.symboltable;
2
3 import junit.framework.TestCase;
4 import net.sourceforge.pmd.ast.ASTVariableDeclaratorId;
5 import net.sourceforge.pmd.ast.SimpleNode;
6 import net.sourceforge.pmd.symboltable.ClassScope;
7 import net.sourceforge.pmd.symboltable.NameOccurrence;
8 import net.sourceforge.pmd.symboltable.VariableNameDeclaration;
9
10 public class ClassScopeTest extends TestCase {
11
12 public void testContains() {
13 ClassScope s = new ClassScope("Foo");
14 ASTVariableDeclaratorId node = new ASTVariableDeclaratorId(1);
15 node.setImage("bar");
16 s.addDeclaration(new VariableNameDeclaration(node));
17 assertTrue(s.getVariableDeclarations(false).keySet().iterator().hasNext());
18 }
19
20 public void testCantContainsSuperToString() {
21 ClassScope s = new ClassScope("Foo");
22 SimpleNode node = new SimpleNode(1);
23 node.setImage("super.toString");
24 assertTrue(!s.contains(new NameOccurrence(node, node.getImage())));
25 }
26
27 public void testContainsStaticVariablePrefixedWithClassName() {
28 ClassScope s = new ClassScope("Foo");
29 ASTVariableDeclaratorId node = new ASTVariableDeclaratorId(1);
30 node.setImage("X");
31 s.addDeclaration(new VariableNameDeclaration(node));
32
33 SimpleNode node2 = new SimpleNode(2);
34 node2.setImage("Foo.X");
35 assertTrue(s.contains(new NameOccurrence(node2, node2.getImage())));
36 }
37
38 public void testClassName() {
39 ClassScope s = new ClassScope("Foo");
40 assertEquals("Foo", s.getClassName());
41 }
42
43 // FIXME - these will break when this goes from Anonymous$1 to Foo$1
44 public void testAnonymousInnerClassName() {
45 ClassScope s = new ClassScope();
46 assertEquals("Anonymous$1", s.getClassName());
47 s = new ClassScope();
48 assertEquals("Anonymous$2", s.getClassName());
49 }
50
51
52 }
This page was automatically generated by Maven