1 /***
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package test.net.sourceforge.pmd.rules;
5
6 import net.sourceforge.pmd.PMD;
7 import net.sourceforge.pmd.Rule;
8 import net.sourceforge.pmd.RuleSetNotFoundException;
9 import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst;
10 import test.net.sourceforge.pmd.testframework.TestDescriptor;
11
12 public class SimplifyBooleanExpressionsRuleTest extends SimpleAggregatorTst {
13
14 private Rule rule;
15
16 public void setUp() throws RuleSetNotFoundException {
17 rule = findRule("design", "SimplifyBooleanExpressions");
18 }
19
20 public void testAll() {
21 runTests(new TestDescriptor[]{
22 new TestDescriptor(TEST1, "in field assignment", 1, rule),
23 new TestDescriptor(TEST2, "in method body", 1, rule),
24 new TestDescriptor(TEST3, "ok", 0, rule),
25 new TestDescriptor(TEST4, "two cases in an && expression", 2, rule),
26 new TestDescriptor(TEST5, "simple use of BooleanLiteral, should not be flagged", 0, rule),
27 });
28 }
29
30 private static final String TEST1 =
31 "public class Foo {" + PMD.EOL +
32 " private boolean foo = (isFoo() == true);" + PMD.EOL +
33 " boolean isFoo() {return foo;}" + PMD.EOL +
34 "}";
35
36 private static final String TEST2 =
37 "public class Foo {" + PMD.EOL +
38 " void foo() {" + PMD.EOL +
39 " boolean bar = (new String().length() >2) == false;" + PMD.EOL +
40 " }" + PMD.EOL +
41 "}";
42
43 private static final String TEST3 =
44 "public class Foo {" + PMD.EOL +
45 " boolean bar = true;" + PMD.EOL +
46 "}";
47
48 private static final String TEST4 =
49 "public class Foo {" + PMD.EOL +
50 " void bar() {" + PMD.EOL +
51 " if (getFoo() == false && isBar() == true) {}" + PMD.EOL +
52 " }" + PMD.EOL +
53 "}";
54
55 private static final String TEST5 =
56 "public class Foo {" + PMD.EOL +
57 " void bar() {" + PMD.EOL +
58 " if (true) {}" + PMD.EOL +
59 " if (false) {}" + PMD.EOL +
60 " }" + PMD.EOL +
61 "}";
62 }