1   
2    /**
3     * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
4     */
5    package test.net.sourceforge.pmd.rules.design;
6    
7    import org.junit.Before;
8   import org.junit.Test;
9   
10  import net.sourceforge.pmd.Rule;
11   import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst;
12  import test.net.sourceforge.pmd.testframework.TestDescriptor;
13   
14   public class UncommentedEmptyConstructorRuleTest extends SimpleAggregatorTst {
15   
16       private Rule rule;
17       private TestDescriptor[] tests;
18   
19       @Before
20       public void setUp() {
21           rule = findRule("design", "UncommentedEmptyConstructor");
22           tests = extractTestsFromXml(rule);
23       }
24   
25       @Test
26       public void testDefault() {
27           runTests(tests);
28       }
29   
30       @Test
31       public void testIgnoredConstructorInvocation() {
32           rule.addProperty("ignoreExplicitConstructorInvocation", "true");
33           runTests(new TestDescriptor[]{
34               new TestDescriptor(tests[0].getCode(), "simple failure", 1, rule),
35               new TestDescriptor(tests[1].getCode(), "only 'this(...)' failure", 1, rule),
36               new TestDescriptor(tests[2].getCode(), "only 'super(...)' failure", 1, rule),
37               new TestDescriptor(tests[3].getCode(), "single-line comment is OK", 0, rule),
38               new TestDescriptor(tests[4].getCode(), "multiple-line comment is OK", 0, rule),
39               new TestDescriptor(tests[5].getCode(), "Javadoc comment is OK", 0, rule),
40               new TestDescriptor(tests[6].getCode(), "ok", 0, rule),
41               new TestDescriptor(tests[7].getCode(), "with 'this(...)' ok", 0, rule),
42               new TestDescriptor(tests[8].getCode(), "with 'super(...)' ok", 0, rule),
43               new TestDescriptor(tests[9].getCode(), "private is ok", 0, rule),
44           });
45       }
46  
47       public static junit.framework.Test suite() {
48           return new junit.framework.JUnit4TestAdapter(UncommentedEmptyConstructorRuleTest.class);
49       }
50   }