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 }