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