1   /***
2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3    */
4   package test.net.sourceforge.pmd.ant;
5   
6   import junit.framework.TestCase;
7   import net.sourceforge.pmd.ant.Formatter;
8   import net.sourceforge.pmd.ant.PMDTask;
9   import net.sourceforge.pmd.ant.RuleSetWrapper;
10  import org.apache.tools.ant.BuildException;
11  
12  public class PMDTaskTest extends TestCase {
13  
14      public void testNoFormattersValidation() {
15          PMDTask task = new PMDTask();
16          try {
17              task.execute();
18              throw new RuntimeException("Should have thrown a BuildException - no Formatters");
19          } catch (BuildException be) {
20              // cool
21          }
22      }
23  
24      public void testFormatterWithNoToFileAttribute() {
25          PMDTask task = new PMDTask();
26          task.addFormatter(new Formatter());
27          try {
28              task.execute();
29              throw new RuntimeException("Should have thrown a BuildException - a Formatter was missing a toFile attribute");
30          } catch (BuildException be) {
31              // cool
32          }
33      }
34  
35      public void testNoRuleSets() {
36          PMDTask task = new PMDTask();
37          try {
38              task.execute();
39              throw new RuntimeException("Should have thrown a BuildException - no rulesets");
40          } catch (BuildException be) {
41              // cool
42          }
43      }
44  
45      public void testNestedRuleset() {
46          PMDTask task = new PMDTask();
47          RuleSetWrapper r = new RuleSetWrapper();
48          r.addText("rulesets/basic.xml");
49          task.addRuleset(r);
50          r.addText("rulesets/design.xml");
51          task.addRuleset(r);
52          Formatter f = new Formatter();
53          task.addFormatter(f);
54          
55          //TODO
56          try {
57              task.execute();
58          } catch (BuildException be) {
59              //fail(be.toString());
60          }
61      }
62  
63      public void testInvalidJDK() {
64          PMDTask task = new PMDTask();
65          task.setTargetJDK("1.6");
66          try {
67              task.execute();
68              throw new RuntimeException("Should have thrown a BuildException - JDK 1.6 targeted");
69          } catch (BuildException be) {
70              // cool
71          }
72      }
73  }
74