View Javadoc
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.rules.UnusedPrivateFieldRule; 8 import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst; 9 import test.net.sourceforge.pmd.testframework.TestDescriptor; 10 11 public class UnusedPrivateFieldRuleTest extends SimpleAggregatorTst { 12 13 private UnusedPrivateFieldRule rule; 14 15 public void setUp() { 16 rule = new UnusedPrivateFieldRule(); 17 rule.setMessage("Avoid this stuff -> ''{0}''"); 18 } 19 20 public void testAll() { 21 runTests(new TestDescriptor[] { 22 new TestDescriptor(TEST1, "simple unused private field", 1, rule), 23 new TestDescriptor(TEST2, "private field referenced in another field's initializer", 0, rule), 24 new TestDescriptor(TEST3, "private field with field of same name in anonymous inner class", 1, rule), 25 new TestDescriptor(TEST4, "field is used semantically before it's declared syntactically", 0, rule), 26 new TestDescriptor(TEST5, "private field referenced via 'this' modifier", 0, rule), 27 new TestDescriptor(TEST6, "private referenced by anonymous inner class", 0, rule), 28 new TestDescriptor(TEST7, "interface sanity test", 0, rule), 29 new TestDescriptor(TEST8, "unused private field in static inner class", 1, rule), 30 new TestDescriptor(TEST9, "private field referenced in nonstatic inner class", 0, rule), 31 new TestDescriptor(TEST10, "unused private static field", 1, rule), 32 new TestDescriptor(TEST11, "private static final referenced with qualifier", 0, rule), 33 new TestDescriptor(TEST12, "unused private field after class decl", 1, rule), 34 new TestDescriptor(TEST13, "two unused private fields in separate inner classes", 2, rule), 35 new TestDescriptor(TEST14, "method param shadows unused private field", 1, rule), 36 new TestDescriptor(TEST15, "private field referenced via 'this' not shadowed by param of same name", 0, rule), 37 new TestDescriptor(TEST16, "don't catch public fields", 0, rule), 38 new TestDescriptor(TEST17, "instantiate self and reference private field on other object", 0, rule), 39 new TestDescriptor(TEST18, "don't count Serialization fields as being unused", 0, rule), 40 }); 41 } 42 private static final String TEST1 = 43 "public class UnusedPrivateField1 {" + PMD.EOL + 44 "private String foo;" + PMD.EOL + 45 "}"; 46 47 private static final String TEST2 = 48 "public class UnusedPrivateField2 {" + PMD.EOL + 49 " " + PMD.EOL + 50 " private String foo;" + PMD.EOL + 51 " private String bar = foo;" + PMD.EOL + 52 " " + PMD.EOL + 53 " public void buz() {" + PMD.EOL + 54 " bar = null;" + PMD.EOL + 55 " }" + PMD.EOL + 56 "}"; 57 58 private static final String TEST3 = 59 "public class UnusedPrivateField3 {" + PMD.EOL + 60 "" + PMD.EOL + 61 " private String foo;" + PMD.EOL + 62 "" + PMD.EOL + 63 " public void baz() {" + PMD.EOL + 64 " Runnable r = new Runnable() {" + PMD.EOL + 65 " public void run() {" + PMD.EOL + 66 " String foo = \"buz\";" + PMD.EOL + 67 " }" + PMD.EOL + 68 " }; " + PMD.EOL + 69 " }" + PMD.EOL + 70 "}"; 71 72 private static final String TEST4 = 73 "public class UnusedPrivateField4 {" + PMD.EOL + 74 " public void bar() {" + PMD.EOL + 75 " foo[0] = 0;" + PMD.EOL + 76 " }" + PMD.EOL + 77 " private int[] foo;" + PMD.EOL + 78 "}"; 79 80 private static final String TEST5 = 81 "public class UnusedPrivateField5 {" + PMD.EOL + 82 " private String foo;" + PMD.EOL + 83 " public void bar() { " + PMD.EOL + 84 " this.foo = null;" + PMD.EOL + 85 " }" + PMD.EOL + 86 "}"; 87 88 private static final String TEST6 = 89 "public class UnusedPrivateField6 {" + PMD.EOL + 90 " private static final String FOO = \"foo\";" + PMD.EOL + 91 " public Runnable bar() { " + PMD.EOL + 92 " return new Runnable() {" + PMD.EOL + 93 " public void run() {" + PMD.EOL + 94 " FOO.toString();" + PMD.EOL + 95 " }" + PMD.EOL + 96 " };" + PMD.EOL + 97 " }" + PMD.EOL + 98 "}"; 99 100 private static final String TEST7 = 101 "public interface UnusedPrivateField7 {" + PMD.EOL + 102 " public static final String FOO = \"FOO\"; " + PMD.EOL + 103 " public boolean equals(Object another);" + PMD.EOL + 104 " public int hashCode();" + PMD.EOL + 105 " public String toString();" + PMD.EOL + 106 "}"; 107 108 private static final String TEST8 = 109 "public class UnusedPrivateField8 {" + PMD.EOL + 110 " public static class Services {" + PMD.EOL + 111 " private String x; " + PMD.EOL + 112 " }" + PMD.EOL + 113 "}" + PMD.EOL + 114 ""; 115 116 private static final String TEST9 = 117 "public class UnusedPrivateField9 {" + PMD.EOL + 118 " private int x;" + PMD.EOL + 119 " private class Bar {" + PMD.EOL + 120 " public void baz() {" + PMD.EOL + 121 " x = 2;" + PMD.EOL + 122 " }" + PMD.EOL + 123 " }" + PMD.EOL + 124 "}"; 125 126 private static final String TEST10 = 127 "public class UnusedPrivateField10 {" + PMD.EOL + 128 " private static String foo;" + PMD.EOL + 129 "}"; 130 131 private static final String TEST11 = 132 "public class Foo {" + PMD.EOL + 133 " private static final int BAR = 2;" + PMD.EOL + 134 " int x = Foo.BAR;" + PMD.EOL + 135 "}"; 136 137 private static final String TEST12 = 138 "public class Foo {" + PMD.EOL + 139 " public class Foo {}" + PMD.EOL + 140 " private int x;" + PMD.EOL + 141 "}"; 142 143 private static final String TEST13 = 144 "public class Foo {" + PMD.EOL + 145 " public class Foo {private int x;}" + PMD.EOL + 146 " public class Bar {private int x;}" + PMD.EOL + 147 "}"; 148 149 private static final String TEST14 = 150 "public class Foo {" + PMD.EOL + 151 " private int value;" + PMD.EOL + 152 " public int doSomething(int value) { " + PMD.EOL + 153 " return value + 1; " + PMD.EOL + 154 " }" + PMD.EOL + 155 "}"; 156 157 private static final String TEST15 = 158 "public class Foo {" + PMD.EOL + 159 " private int x; " + PMD.EOL + 160 " public UnusedPrivateField17(int x) {" + PMD.EOL + 161 " this.x=x;" + PMD.EOL + 162 " }" + PMD.EOL + 163 "}"; 164 165 private static final String TEST16 = 166 "public class Foo {" + PMD.EOL + 167 " public static final String FOO = \"foo\";" + PMD.EOL + 168 "}"; 169 170 private static final String TEST17 = 171 "public class Foo {" + PMD.EOL + 172 " private int x;" + PMD.EOL + 173 " public void foo() {" + PMD.EOL + 174 " Foo foo = new Foo(); " + PMD.EOL + 175 " foo.x = 2;" + PMD.EOL + 176 " }" + PMD.EOL + 177 "}"; 178 179 private static final String TEST18 = 180 "public class Foo {" + PMD.EOL + 181 " private static final ObjectStreamField[] serialPersistentFields = {new ObjectStreamField(\"foo\", String.class)};" + PMD.EOL + 182 "}"; 183 184 }

This page was automatically generated by Maven