1 package net.sourceforge.pmd.symboltable;
2
3 import static org.junit.Assert.assertEquals;
4
5 import java.util.List;
6 import java.util.Map;
7 import java.util.Set;
8
9 import net.sourceforge.pmd.PMD;
10 import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration;
11 import net.sourceforge.pmd.lang.java.symboltable.ClassScope;
12 import net.sourceforge.pmd.lang.java.symboltable.MethodNameDeclaration;
13 import net.sourceforge.pmd.lang.java.symboltable.NameOccurrence;
14
15 import org.junit.Test;
16
17 public class MethodNameDeclarationTest extends STBBaseTst {
18
19 @Test
20 public void testEquality() {
21
22 parseCode15(SIMILAR);
23 ASTClassOrInterfaceDeclaration n = acu.findDescendantsOfType(ASTClassOrInterfaceDeclaration.class).get(0);
24 Map<MethodNameDeclaration, List<NameOccurrence>> m = ((ClassScope) n.getScope()).getMethodDeclarations();
25 Set<MethodNameDeclaration> methodNameDeclarations = m.keySet();
26 assertEquals("Wrong number of method name declarations", methodNameDeclarations.size(), 3);
27 }
28
29 private static final String SIMILAR =
30 "public class Foo {" + PMD.EOL +
31 " public void bar() {" + PMD.EOL +
32 " bar(x, y);" + PMD.EOL +
33 " }" + PMD.EOL +
34 " private void bar(int x, int y) {}" + PMD.EOL +
35 " private void bar(int x, int... y) {}" + PMD.EOL +
36 "}";
37
38 public static junit.framework.Test suite() {
39 return new junit.framework.JUnit4TestAdapter(MethodNameDeclarationTest.class);
40 }
41 }