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

This page was automatically generated by Maven