1 /***
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package test.net.sourceforge.pmd.rules.design;
5
6 import net.sourceforge.pmd.PMD;
7 import net.sourceforge.pmd.rules.design.OnlyOneReturnRule;
8 import test.net.sourceforge.pmd.testframework.RuleTst;
9
10 public class OnlyOneReturnRuleTest extends RuleTst {
11
12 private static final String TEST1 =
13 "public class OnlyOneReturn1 {" + PMD.EOL +
14 " public String foo(int x) { " + PMD.EOL +
15 " if (x > 0) {" + PMD.EOL +
16 " return \"hey\";" + PMD.EOL +
17 " }" + PMD.EOL +
18 " return \"hi\";" + PMD.EOL +
19 " }" + PMD.EOL +
20 "}";
21
22
23 private static final String TEST2 =
24 "public class OnlyOneReturn2 {" + PMD.EOL +
25 " public String foo(int x) { " + PMD.EOL +
26 " return \"hi\";" + PMD.EOL +
27 " }" + PMD.EOL +
28 "}";
29
30 private static final String TEST3 =
31 "public class OnlyOneReturn3 {" + PMD.EOL +
32 " public void foo(int x) { " + PMD.EOL +
33 " int y =2;" + PMD.EOL +
34 " }" + PMD.EOL +
35 "}";
36
37 private static final String TEST4 =
38 "public class OnlyOneReturn4 {" + PMD.EOL +
39 " public void foo(int x) { " + PMD.EOL +
40 " if (x>2) {" + PMD.EOL +
41 " return;" + PMD.EOL +
42 " }" + PMD.EOL +
43 " int y =2;" + PMD.EOL +
44 " }" + PMD.EOL +
45 "}";
46
47 private static final String TEST5 =
48 "public class OnlyOneReturn5 {" + PMD.EOL +
49 " public int foo(int x) {" + PMD.EOL +
50 " try {" + PMD.EOL +
51 " x += 2;" + PMD.EOL +
52 " return x;" + PMD.EOL +
53 " } finally {" + PMD.EOL +
54 " System.err.println(\"WunderBuggy!\");" + PMD.EOL +
55 " }" + PMD.EOL +
56 " }" + PMD.EOL +
57 "}";
58
59 private static final String TEST6 =
60 "public class OnlyOneReturn6 {" + PMD.EOL +
61 " public int foo() {" + PMD.EOL +
62 " FileFilter f = new FileFilter() {" + PMD.EOL +
63 " public boolean accept(File file) {" + PMD.EOL +
64 " return false;" + PMD.EOL +
65 " }" + PMD.EOL +
66 " };" + PMD.EOL +
67 " return 2;" + PMD.EOL +
68 " }" + PMD.EOL +
69 "}";
70
71
72
73 public void testTwoReturns() throws Throwable {
74 runTestFromString(TEST1, 1, new OnlyOneReturnRule());
75 }
76 public void testOneReturn() throws Throwable {
77 runTestFromString(TEST2, 0, new OnlyOneReturnRule());
78 }
79 public void testNoReturns() throws Throwable {
80 runTestFromString(TEST3, 0, new OnlyOneReturnRule());
81 }
82 public void testVoidRtn() throws Throwable {
83 runTestFromString(TEST4, 0, new OnlyOneReturnRule());
84 }
85 public void testFinally() throws Throwable {
86 runTestFromString(TEST5, 0, new OnlyOneReturnRule());
87 }
88 public void testReturnInsideAnonymousInnerClass() throws Throwable {
89 runTestFromString(TEST6, 0, new OnlyOneReturnRule());
90 }
91 }
This page was automatically generated by Maven