/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.ant;
import static org.junit.Assert.fail;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.BuildFileRule;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
public class PMDTaskTest {
@Rule
public final BuildFileRule buildRule = new BuildFileRule();
@Before
public void setUp() {
buildRule.configureProject("src/test/resources/net/sourceforge/pmd/ant/xml/pmdtasktest.xml");
}
@Test
public void testFormatterWithNoToFileAttribute() {
try {
buildRule.executeTarget("testFormatterWithNoToFileAttribute");
fail("This should throw an exception");
} catch (BuildException ex) {
Assert.assertEquals("toFile or toConsole needs to be specified in Formatter", ex.getMessage());
}
}
@Test
public void testNoRuleSets() {
try {
buildRule.executeTarget("testNoRuleSets");
fail("This should throw an exception");
} catch (BuildException ex) {
Assert.assertEquals("No rulesets specified", ex.getMessage());
}
}
@Test
public void testBasic() {
buildRule.executeTarget("testBasic");
}
@Test
public void testInvalidLanguageVersion() {
try {
buildRule.executeTarget("testInvalidLanguageVersion");
Assert.assertEquals(
"The following language is not supported:<sourceLanguage name=\"java\" version=\"42\" />.",
buildRule.getLog());
fail("This should throw an exception");
} catch (BuildException ex) {
Assert.assertEquals(
"The following language is not supported:<sourceLanguage name=\"java\" version=\"42\" />.",
ex.getMessage());
}
}
}