1
2
3
4 package net.sourceforge.pmd.lang.java.ast;
5
6 import static org.junit.Assert.assertEquals;
7 import static org.junit.Assert.assertTrue;
8
9 import java.util.Set;
10
11 import net.sourceforge.pmd.lang.java.ParserTst;
12
13 import org.junit.Test;
14
15 public class MethodDeclTest extends ParserTst {
16
17 @Test
18 public void testPublic() throws Throwable {
19 String[] access = {"public"};
20 ASTMethodDeclaration amd = getMethodDecl(access);
21 assertTrue("Expecting method to be public.", amd.isPublic());
22 }
23
24 @Test
25 public void testPrivate() throws Throwable {
26 String[] access = {"private"};
27 ASTMethodDeclaration amd = getMethodDecl(access);
28 assertTrue("Expecting method to be private.", amd.isPrivate());
29 }
30
31 @Test
32 public void testProtected() throws Throwable {
33 String[] access = {"protected"};
34 ASTMethodDeclaration amd = getMethodDecl(access);
35 assertTrue("Expecting method to be protected.", amd.isProtected());
36 }
37
38 @Test
39 public void testFinal() throws Throwable {
40 String[] access = {"public", "final"};
41 ASTMethodDeclaration amd = getMethodDecl(access);
42 assertTrue("Expecting method to be final.", amd.isFinal());
43 assertTrue("Expecting method to be public.", amd.isPublic());
44 }
45
46 @Test
47 public void testSynchronized() throws Throwable {
48 String[] access = {"public", "synchronized"};
49 ASTMethodDeclaration amd = getMethodDecl(access);
50 assertTrue("Expecting method to be synchronized.", amd.isSynchronized());
51 assertTrue("Expecting method to be public.", amd.isPublic());
52 }
53
54 @Test
55 public void testAbstract() throws Throwable {
56 String[] access = {"public", "abstract"};
57 ASTMethodDeclaration amd = getMethodDecl(access);
58 assertTrue("Expecting method to be abstract.", amd.isAbstract());
59 assertTrue("Expecting method to be public.", amd.isPublic());
60 }
61
62 @Test
63 public void testNative() throws Throwable {
64 String[] access = {"private", "native"};
65 ASTMethodDeclaration amd = getMethodDecl(access);
66 assertTrue("Expecting method to be native.", amd.isNative());
67 assertTrue("Expecting method to be private.", amd.isPrivate());
68 }
69
70 @Test
71 public void testStrict() throws Throwable {
72 String[] access = {"public", "strictfp"};
73 ASTMethodDeclaration amd = getMethodDecl(access);
74 assertTrue("Expecting method to be strict.", amd.isStrictfp());
75 assertTrue("Expecting method to be public.", amd.isPublic());
76 }
77
78 public ASTMethodDeclaration getMethodDecl(String[] access) throws Throwable {
79 String javaCode = "public class Test { ";
80 for (int i = 0; i < access.length; i++) {
81 javaCode += access[i] + " ";
82 }
83
84 javaCode += " void stuff() { } }";
85
86 Set<ASTMethodDeclaration> methods = getNodes(ASTMethodDeclaration.class, javaCode);
87
88 assertEquals("Wrong number of methods", 1, methods.size());
89
90 return methods.iterator().next();
91 }
92
93 public static junit.framework.Test suite() {
94 return new junit.framework.JUnit4TestAdapter(MethodDeclTest.class);
95 }
96 }