nameoccurrencestest.java

来自「检查Java程序漏洞」· Java 代码 · 共 96 行

JAVA
96
字号
/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html*/package test.net.sourceforge.pmd.symboltable;import junit.framework.TestCase;import net.sourceforge.pmd.ast.ASTName;import net.sourceforge.pmd.ast.ASTPrimaryExpression;import net.sourceforge.pmd.ast.ASTPrimaryPrefix;import net.sourceforge.pmd.ast.ASTPrimarySuffix;import net.sourceforge.pmd.symboltable.NameOccurrence;import net.sourceforge.pmd.symboltable.NameOccurrences;public class NameOccurrencesTest extends TestCase {    public void testNameLinkage() {        ASTPrimaryExpression primary = new ASTPrimaryExpression(1);        primary.testingOnly__setBeginLine(10);        ASTPrimaryPrefix prefix = new ASTPrimaryPrefix(2);        prefix.setUsesThisModifier();        prefix.testingOnly__setBeginLine(10);        primary.jjtAddChild(prefix, 0);        ASTPrimarySuffix suffix = new ASTPrimarySuffix(3);        suffix.setImage("x");        suffix.testingOnly__setBeginLine(10);        primary.jjtAddChild(suffix, 1);        NameOccurrences occs = new NameOccurrences(primary);        NameOccurrence thisOcc = (NameOccurrence) occs.iterator().next();        NameOccurrence xOcc = (NameOccurrence) occs.getNames().get(1);        assertEquals(thisOcc.getNameForWhichThisIsAQualifier(), xOcc);    }    // super    public void testSuper() {        ASTPrimaryExpression primary = new ASTPrimaryExpression(1);        primary.testingOnly__setBeginLine(10);        ASTPrimaryPrefix prefix = new ASTPrimaryPrefix(2);        prefix.setUsesSuperModifier();        prefix.testingOnly__setBeginLine(10);        primary.jjtAddChild(prefix, 0);        NameOccurrences occs = new NameOccurrences(primary);        assertEquals("super", ((NameOccurrence) occs.getNames().get(0)).getImage());    }    // this    public void testThis() {        ASTPrimaryExpression primary = new ASTPrimaryExpression(1);        primary.testingOnly__setBeginLine(10);        ASTPrimaryPrefix prefix = new ASTPrimaryPrefix(2);        prefix.setUsesThisModifier();        prefix.testingOnly__setBeginLine(10);        primary.jjtAddChild(prefix, 0);        NameOccurrences occs = new NameOccurrences(primary);        assertEquals("this", ((NameOccurrence) occs.getNames().get(0)).getImage());    }    // this.x    public void testFieldWithThis() {        ASTPrimaryExpression primary = new ASTPrimaryExpression(1);        primary.testingOnly__setBeginLine(10);        ASTPrimaryPrefix prefix = new ASTPrimaryPrefix(2);        prefix.setUsesThisModifier();        prefix.testingOnly__setBeginLine(10);        primary.jjtAddChild(prefix, 0);        ASTPrimarySuffix suffix = new ASTPrimarySuffix(3);        suffix.setImage("x");        suffix.testingOnly__setBeginLine(10);        primary.jjtAddChild(suffix, 1);        NameOccurrences occs = new NameOccurrences(primary);        assertEquals("this", ((NameOccurrence) occs.getNames().get(0)).getImage());        assertEquals("x", ((NameOccurrence) occs.getNames().get(1)).getImage());    }    // x    public void testField() {        ASTPrimaryExpression primary = new ASTPrimaryExpression(1);        primary.testingOnly__setBeginLine(10);        ASTPrimaryPrefix prefix = new ASTPrimaryPrefix(2);        prefix.testingOnly__setBeginLine(10);        primary.jjtAddChild(prefix, 0);        ASTName name = new ASTName(3);        name.setImage("x");        prefix.jjtAddChild(name, 0);        NameOccurrences occs = new NameOccurrences(primary);        assertEquals("x", ((NameOccurrence) occs.getNames().get(0)).getImage());    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?