1 package test.net.sourceforge.pmd.symboltable;
2
3 import junit.framework.TestCase;
4 import net.sourceforge.pmd.ast.ASTName;
5 import net.sourceforge.pmd.ast.ASTPrimaryExpression;
6 import net.sourceforge.pmd.ast.ASTPrimaryPrefix;
7 import net.sourceforge.pmd.ast.ASTPrimarySuffix;
8 import net.sourceforge.pmd.symboltable.NameOccurrence;
9 import net.sourceforge.pmd.symboltable.NameOccurrences;
10
11 public class NameOccurrencesTest extends TestCase {
12
13
14 public void testNameLinkage() {
15 ASTPrimaryExpression primary = new ASTPrimaryExpression(1);
16 primary.testingOnly__setBeginLine(10);
17 ASTPrimaryPrefix prefix = new ASTPrimaryPrefix(2);
18 prefix.setUsesThisModifier();
19 prefix.testingOnly__setBeginLine(10);
20 primary.jjtAddChild(prefix, 0);
21 ASTPrimarySuffix suffix = new ASTPrimarySuffix(3);
22 suffix.setImage("x");
23 suffix.testingOnly__setBeginLine(10);
24 primary.jjtAddChild(suffix, 1);
25
26 NameOccurrences occs = new NameOccurrences(primary);
27 NameOccurrence thisOcc = (NameOccurrence) occs.iterator().next();
28 NameOccurrence xOcc = (NameOccurrence) occs.getNames().get(1);
29 assertEquals(thisOcc.getNameForWhichThisIsAQualifier(), xOcc);
30 }
31
32 // super
33 public void testSuper() {
34 ASTPrimaryExpression primary = new ASTPrimaryExpression(1);
35 primary.testingOnly__setBeginLine(10);
36 ASTPrimaryPrefix prefix = new ASTPrimaryPrefix(2);
37 prefix.setUsesSuperModifier();
38 prefix.testingOnly__setBeginLine(10);
39 primary.jjtAddChild(prefix, 0);
40
41 NameOccurrences occs = new NameOccurrences(primary);
42 assertEquals("super", ((NameOccurrence) occs.getNames().get(0)).getImage());
43 }
44
45 // this
46 public void testThis() {
47 ASTPrimaryExpression primary = new ASTPrimaryExpression(1);
48 primary.testingOnly__setBeginLine(10);
49 ASTPrimaryPrefix prefix = new ASTPrimaryPrefix(2);
50 prefix.setUsesThisModifier();
51 prefix.testingOnly__setBeginLine(10);
52 primary.jjtAddChild(prefix, 0);
53
54 NameOccurrences occs = new NameOccurrences(primary);
55 assertEquals("this", ((NameOccurrence) occs.getNames().get(0)).getImage());
56 }
57
58 // this.x
59 public void testFieldWithThis() {
60 ASTPrimaryExpression primary = new ASTPrimaryExpression(1);
61 primary.testingOnly__setBeginLine(10);
62 ASTPrimaryPrefix prefix = new ASTPrimaryPrefix(2);
63 prefix.setUsesThisModifier();
64 prefix.testingOnly__setBeginLine(10);
65 primary.jjtAddChild(prefix, 0);
66 ASTPrimarySuffix suffix = new ASTPrimarySuffix(3);
67 suffix.setImage("x");
68 suffix.testingOnly__setBeginLine(10);
69 primary.jjtAddChild(suffix, 1);
70
71 NameOccurrences occs = new NameOccurrences(primary);
72 assertEquals("this", ((NameOccurrence) occs.getNames().get(0)).getImage());
73 assertEquals("x", ((NameOccurrence) occs.getNames().get(1)).getImage());
74 }
75
76 // x
77 public void testField() {
78 ASTPrimaryExpression primary = new ASTPrimaryExpression(1);
79 primary.testingOnly__setBeginLine(10);
80 ASTPrimaryPrefix prefix = new ASTPrimaryPrefix(2);
81 prefix.testingOnly__setBeginLine(10);
82 primary.jjtAddChild(prefix, 0);
83 ASTName name = new ASTName(3);
84 name.setImage("x");
85 prefix.jjtAddChild(name, 0);
86
87 NameOccurrences occs = new NameOccurrences(primary);
88 assertEquals("x", ((NameOccurrence) occs.getNames().get(0)).getImage());
89 }
90
91
92 }
This page was automatically generated by Maven