View Javadoc

    1   /**
    2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
    3    */
    4   package net.sourceforge.pmd.ant;
    5
    6   import org.apache.tools.ant.BuildFileTest;
    7   import org.junit.Test;
    8
    9   public class PMDTaskTest extends BuildFileTest {
    10
    11      @Override
    12      public void setUp() {
    13          // initialize Ant
    14          configureProject("target/test-classes/net/sourceforge/pmd/ant/xml/pmdtasktest.xml");
    15          if (!project.getBaseDir().toString().endsWith("pmd/ant/xml")) {
    16              // when running from maven, the path needs to be adapted...
    17              // FIXME: this is more a workaround than a good solution...
    18              project.setBasedir(project.getBaseDir().toString()
    19          	    + "/target/test-classes/net/sourceforge/pmd/ant/xml");
    20          }
    21      }
    22
    23      @Test
    24      public void testNoFormattersValidation() {
    25          executeTarget("testNoFormattersValidation");
    26          assertOutputContaining("Fields should be declared at the top of the class");
    27      }
    28
    29      @Test
    30      public void testFormatterWithNoToFileAttribute() {
    31          expectBuildExceptionContaining("testFormatterWithNoToFileAttribute", "Valid Error Message", "toFile or toConsole needs to be specified in Formatter");
    32      }
    33
    34      @Test
    35      public void testNoRuleSets() {
    36          expectBuildExceptionContaining("testNoRuleSets", "Valid Error Message", "No rulesets specified");
    37      }
    38
    39      @Test
    40      public void testNestedRuleset() {
    41          executeTarget("testNestedRuleset");
    42          assertOutputContaining("Avoid really long methods");
    43          assertOutputContaining("Fields should be declared at the");
    44      }
    45
    46      @Test
    47      public void testFormatterWithProperties() {
    48          executeTarget("testFormatterWithProperties");
    49          assertOutputContaining("Avoid really long methods");
    50          assertOutputContaining("Fields should be declared at the");
    51          assertOutputContaining("link_prefix");
    52          assertOutputContaining("line_prefix");
    53      }
    54
    55      @Test
    56      public void testAbstractNames() {
    57          executeTarget("testAbstractNames");
    58          assertOutputContaining("Avoid really long methods");
    59          assertOutputContaining("Fields should be declared at the");
    60      }
    61
    62      @Test
    63      public void testAbstractNamesInNestedRuleset() {
    64          executeTarget("testAbstractNamesInNestedRuleset");
    65          assertOutputContaining("Avoid really long methods");
    66          assertOutputContaining("Fields should be declared at the");
    67      }
    68
    69      @Test
    70      public void testCommaInRulesetfiles() {
    71          executeTarget("testCommaInRulesetfiles");
    72          assertOutputContaining("Avoid really long methods");
    73          assertOutputContaining("Fields should be declared at the");
    74      }
    75
    76      @Test
    77      public void testRelativeRulesets() {
    78          executeTarget("testRelativeRulesets");
    79          assertOutputContaining("Avoid really long methods");
    80          assertOutputContaining("Fields should be declared at the");
    81      }
    82
    83      @Test
    84      public void testRelativeRulesetsInRulesetfiles() {
    85          executeTarget("testRelativeRulesetsInRulesetfiles");
    86          assertOutputContaining("Avoid really long methods");
    87          assertOutputContaining("Fields should be declared at");
    88      }
    89
    90      @Test
    91      public void testBasic() {
    92          executeTarget("testBasic");
    93      }
    94
    95      @Test
    96      public void testInvalidLanguageVersion() {
    97          expectBuildExceptionContaining("testInvalidLanguageVersion", "Fail requested.", "The following language is not supported:<language name=\"java\" version=\"42\" />.");
    98      }
    99
    100     @Test
    101     public void testExplicitRuleInRuleSet() {
    102         executeTarget("testExplicitRuleInRuleSet");
    103         assertOutputContaining("Avoid really long methods");
    104     }
    105
    106     @Test
    107     public void testEcmascript() {
    108         executeTarget("testEcmascript");
    109         assertOutputContaining("A 'return', 'break', 'continue', or 'throw' statement should be the last in a block.");
    110         assertOutputContaining("Avoid using global variables");
    111         assertOutputContaining("Use ===/!== to compare with true/false or Numbers");
    112     }
    113
    114     @Test
    115     public void testXML() {
    116         executeTarget("testXML");
    117         assertOutputContaining("Potentialy mistyped CDATA section with extra [ at beginning or ] at the end.");
    118     }
    119
    120     @Test
    121     public void testClasspath() {
    122         executeTarget("testClasspath");
    123     }
    124
    125     public static junit.framework.Test suite() {
    126         return new junit.framework.JUnit4TestAdapter(PMDTaskTest.class);
    127     }
    128 }