1   package test.net.sourceforge.pmd.rules.strings;
2   
3   import net.sourceforge.pmd.PMD;
4   import net.sourceforge.pmd.Rule;
5   import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst;
6   import test.net.sourceforge.pmd.testframework.TestDescriptor;
7   
8   public class UseIndexOfCharTest extends SimpleAggregatorTst  {
9   
10      private Rule rule;
11  
12      public void setUp() throws Exception {
13          rule = findRule("rulesets/strings.xml", "UseIndexOfChar");
14      }
15  
16      public void testAll() {
17         runTests(new TestDescriptor[] {
18             new TestDescriptor(TEST1, "failure case", 1, rule),
19             new TestDescriptor(TEST2, "using single quotes, OK", 0, rule),
20             new TestDescriptor(TEST3, "indexOf multi-character literal, OK", 0, rule),
21             new TestDescriptor(TEST4, "using indexOf(singleCharString, int)", 1, rule),
22             new TestDescriptor(TEST5, "using lastIndexOf(singleCharString)", 1, rule),
23             new TestDescriptor(TEST6, "complicated expressions are ok", 0, rule),
24         });
25      }
26  
27      private static final String TEST1 =
28      "public class Foo {" + PMD.EOL +
29      " void bar() {" + PMD.EOL +
30      "  String x = \"hello\";" + PMD.EOL +
31      "  if (x.indexOf(\"o\") == -1) {}" + PMD.EOL +
32      " }" + PMD.EOL +
33      "}";
34  
35      private static final String TEST2 =
36      "public class Foo {" + PMD.EOL +
37      " void bar() {" + PMD.EOL +
38      "  String x = \"hello\";" + PMD.EOL +
39      "  if (x.indexOf('o') == -1) {}" + PMD.EOL +
40      " }" + PMD.EOL +
41      "}";
42  
43      private static final String TEST3 =
44      "public class Foo {" + PMD.EOL +
45      " void bar() {" + PMD.EOL +
46      "  String x = \"hello\";" + PMD.EOL +
47      "  if (x.indexOf(\"ello\") == -1) {}" + PMD.EOL +
48      " }" + PMD.EOL +
49      "}";
50  
51      private static final String TEST4 =
52      "public class Foo {" + PMD.EOL +
53      " void bar() {" + PMD.EOL +
54      "  String x = \"hello world\";" + PMD.EOL +
55      "  if (x.indexOf(\"e\", 5) == -1) {}" + PMD.EOL +
56      " }" + PMD.EOL +
57      "}";
58  
59      private static final String TEST5 =
60      "public class Foo {" + PMD.EOL +
61      " void bar() {" + PMD.EOL +
62      "  String x = \"hello world\";" + PMD.EOL +
63      "  if (x.lastIndexOf(\"e\", 5) == -1) {}" + PMD.EOL +
64      " }" + PMD.EOL +
65      "}";
66  
67      private static final String TEST6 =
68      "public class Foo {" + PMD.EOL +
69      " void bar() {" + PMD.EOL +
70      "  String x = \"hello world\";" + PMD.EOL +
71      "  if (x.indexOf(\"e\" + \"o\") == -1) {}" + PMD.EOL +
72      " }" + PMD.EOL +
73      "}";
74  
75  }