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