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 }