Simplify test
I don't think we need to assert everything, the pmd-dist module already has a test like that
This commit is contained in:
@ -6,15 +6,8 @@ package net.sourceforge.pmd.cli;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
|
||||
import com.beust.jcommander.JCommander;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.ComparisonFailure;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.contrib.java.lang.system.ExpectedSystemExit;
|
||||
@ -89,185 +82,9 @@ public class PMDCommandLineInterfaceTest {
|
||||
Assert.assertEquals(System.getProperty(PMDCommandLineInterface.STATUS_CODE_PROPERTY), "0");
|
||||
}
|
||||
|
||||
static void assertStringEqualsIgnoreEOL(String expected, String actual) throws IOException {
|
||||
try (StringReader expectedReader = new StringReader(expected);
|
||||
StringReader actualReader = new StringReader(actual);
|
||||
) {
|
||||
if (!IOUtils.contentEqualsIgnoreEOL(expectedReader, actualReader)) {
|
||||
throw new ComparisonFailure("", expected, actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBuildUsageText() throws IOException {
|
||||
String string1 = PMDCommandLineInterface.buildUsageText();
|
||||
String string2 = PMDCommandLineInterface.buildUsageText(null);
|
||||
Assert.assertEquals(string1, string2);
|
||||
assertStringEqualsIgnoreEOL(TEST_BUILD_USAGE_TEXT_EXPECTED_1, string1);
|
||||
String ta = "a";
|
||||
String tb = "c";
|
||||
Object tc = new Object();
|
||||
JCommander jcommander = new JCommander();
|
||||
jcommander.addCommand(ta, tc);
|
||||
jcommander.addCommand(tb, tc);
|
||||
String string3 = PMDCommandLineInterface.buildUsageText(jcommander);
|
||||
assertStringEqualsIgnoreEOL(TEST_BUILD_USAGE_TEXT_EXPECTED_2, string3);
|
||||
public void testBuildUsageText() {
|
||||
Assert.assertNotNull(PMDCommandLineInterface.buildUsageText());
|
||||
}
|
||||
|
||||
static final String TEST_BUILD_USAGE_TEXT_EXPECTED_1 = "\n"
|
||||
+ "Mandatory arguments:\n"
|
||||
+ "1) A java source code filename or directory\n"
|
||||
+ "2) A report format \n"
|
||||
+ "3) A ruleset filename or a comma-delimited string of ruleset filenames\n"
|
||||
+ "\n"
|
||||
+ "For example: \n"
|
||||
+ "C:\\>pmd-bin-unknown\\bin\\pmd.bat -d c:\\my\\source\\code -f html -R java-unusedcode\n"
|
||||
+ "\n"
|
||||
+ "Languages and version suported:\n"
|
||||
+ "dummy, dummy2\n"
|
||||
+ "\n"
|
||||
+ "Available report formats and their configuration properties are:\n"
|
||||
+ " codeclimate: Code Climate integration.\n"
|
||||
+ " csv: Comma-separated values tabular format.\n"
|
||||
+ " problem - Include Problem column default: true\n"
|
||||
+ " package - Include Package column default: true\n"
|
||||
+ " file - Include File column default: true\n"
|
||||
+ " priority - Include Priority column default: true\n"
|
||||
+ " line - Include Line column default: true\n"
|
||||
+ " desc - Include Description column default: true\n"
|
||||
+ " ruleSet - Include Rule set column default: true\n"
|
||||
+ " rule - Include Rule column default: true\n"
|
||||
+ " emacs: GNU Emacs integration.\n"
|
||||
+ " empty: Empty, nothing.\n"
|
||||
+ " html: HTML format\n"
|
||||
+ " linePrefix - Prefix for line number anchor in the source file.\n"
|
||||
+ " linkPrefix - Path to HTML source.\n"
|
||||
+ " htmlExtension - Replace file extension with .html for the links (default: false) default: "
|
||||
+ "false\n"
|
||||
+ " ideaj: IntelliJ IDEA integration.\n"
|
||||
+ " classAndMethodName - Class and Method name, pass '.method' when processing a directory. "
|
||||
+ "default: \n"
|
||||
+ " sourcePath - Source path. default: \n"
|
||||
+ " fileName - File name. default: \n"
|
||||
+ " json: JSON format.\n"
|
||||
+ " summaryhtml: Summary HTML format.\n"
|
||||
+ " linePrefix - Prefix for line number anchor in the source file.\n"
|
||||
+ " linkPrefix - Path to HTML source.\n"
|
||||
+ " htmlExtension - Replace file extension with .html for the links (default: false) default: "
|
||||
+ "false\n"
|
||||
+ " text: Text format.\n"
|
||||
+ " textcolor: Text format, with color support (requires ANSI console support, e.g. xterm, rxvt, etc"
|
||||
+ ".).\n"
|
||||
+ " color - Enables colors with anything other than 'false' or '0'. default: yes\n"
|
||||
+ " textpad: TextPad integration.\n"
|
||||
+ " vbhtml: Vladimir Bossicard HTML format.\n"
|
||||
+ " xml: XML format.\n"
|
||||
+ " encoding - XML encoding format, defaults to UTF-8. default: UTF-8\n"
|
||||
+ " xslt: XML with a XSL Transformation applied.\n"
|
||||
+ " encoding - XML encoding format, defaults to UTF-8. default: UTF-8\n"
|
||||
+ " xsltFilename - The XSLT file name.\n"
|
||||
+ " yahtml: Yet Another HTML format.\n"
|
||||
+ " outputDir - Output directory.\n"
|
||||
+ "\n"
|
||||
+ "For example on windows: \n"
|
||||
+ "C:\\>pmd-bin-unknown\\bin\\pmd.bat -dir c:\\my\\source\\code -format text -R "
|
||||
+ "rulesets/java/quickstart.xml -version 1.5 -language java -debug\n"
|
||||
+ "C:\\>pmd-bin-unknown\\bin\\pmd.bat -dir c:\\my\\source\\code -f xml -rulesets "
|
||||
+ "rulesets/java/quickstart.xml,category/java/codestyle.xml -encoding UTF-8\n"
|
||||
+ "C:\\>pmd-bin-unknown\\bin\\pmd.bat -d c:\\my\\source\\code -rulesets rulesets/java/quickstart.xml "
|
||||
+ "-auxclasspath lib\\commons-collections.jar;lib\\derby.jar\n"
|
||||
+ "C:\\>pmd-bin-unknown\\bin\\pmd.bat -d c:\\my\\source\\code -f html -R rulesets/java/quickstart.xml "
|
||||
+ "-auxclasspath file:///C:/my/classpathfile\n"
|
||||
+ "\n"
|
||||
+ "For example on *nix: \n"
|
||||
+ "$ pmd-bin-unknown/bin/run.sh pmd -dir /home/workspace/src/main/java/code -f html -rulesets "
|
||||
+ "rulesets/java/quickstart.xml,category/java/codestyle.xml\n"
|
||||
+ "$ pmd-bin-unknown/bin/run.sh pmd -d ./src/main/java/code -R rulesets/java/quickstart.xml -f xslt "
|
||||
+ "-property xsltFilename=my-own.xsl\n"
|
||||
+ "$ pmd-bin-unknown/bin/run.sh pmd -d ./src/main/java/code -f html -R rulesets/java/quickstart.xml "
|
||||
+ "-auxclasspath commons-collections.jar:derby.jar\n"
|
||||
+ "\n"
|
||||
+ "\n"
|
||||
+ "\n";
|
||||
|
||||
static final String TEST_BUILD_USAGE_TEXT_EXPECTED_2 = "\n"
|
||||
+ "Mandatory arguments:\n"
|
||||
+ "1) A java source code filename or directory\n"
|
||||
+ "2) A report format \n"
|
||||
+ "3) A ruleset filename or a comma-delimited string of ruleset filenames\n"
|
||||
+ "\n"
|
||||
+ "For example: \n"
|
||||
+ "C:\\>pmd-bin-unknown\\bin\\pmd.bat -d c:\\my\\source\\code -f html -R java-unusedcode\n"
|
||||
+ "\n"
|
||||
+ "Languages and version suported:\n"
|
||||
+ "dummy, dummy2\n"
|
||||
+ "\n"
|
||||
+ "Optional arguments that may be put before or after the mandatory arguments: \n"
|
||||
+ "null\n"
|
||||
+ "null\n"
|
||||
+ "\n"
|
||||
+ "Available report formats and their configuration properties are:\n"
|
||||
+ " codeclimate: Code Climate integration.\n"
|
||||
+ " csv: Comma-separated values tabular format.\n"
|
||||
+ " problem - Include Problem column default: true\n"
|
||||
+ " package - Include Package column default: true\n"
|
||||
+ " file - Include File column default: true\n"
|
||||
+ " priority - Include Priority column default: true\n"
|
||||
+ " line - Include Line column default: true\n"
|
||||
+ " desc - Include Description column default: true\n"
|
||||
+ " ruleSet - Include Rule set column default: true\n"
|
||||
+ " rule - Include Rule column default: true\n"
|
||||
+ " emacs: GNU Emacs integration.\n"
|
||||
+ " empty: Empty, nothing.\n"
|
||||
+ " html: HTML format\n"
|
||||
+ " linePrefix - Prefix for line number anchor in the source file.\n"
|
||||
+ " linkPrefix - Path to HTML source.\n"
|
||||
+ " htmlExtension - Replace file extension with .html for the links (default: false) default: "
|
||||
+ "false\n"
|
||||
+ " ideaj: IntelliJ IDEA integration.\n"
|
||||
+ " classAndMethodName - Class and Method name, pass '.method' when processing a directory. "
|
||||
+ "default: \n"
|
||||
+ " sourcePath - Source path. default: \n"
|
||||
+ " fileName - File name. default: \n"
|
||||
+ " json: JSON format.\n"
|
||||
+ " summaryhtml: Summary HTML format.\n"
|
||||
+ " linePrefix - Prefix for line number anchor in the source file.\n"
|
||||
+ " linkPrefix - Path to HTML source.\n"
|
||||
+ " htmlExtension - Replace file extension with .html for the links (default: false) default: "
|
||||
+ "false\n"
|
||||
+ " text: Text format.\n"
|
||||
+ " textcolor: Text format, with color support (requires ANSI console support, e.g. xterm, rxvt, etc"
|
||||
+ ".).\n"
|
||||
+ " color - Enables colors with anything other than 'false' or '0'. default: yes\n"
|
||||
+ " textpad: TextPad integration.\n"
|
||||
+ " vbhtml: Vladimir Bossicard HTML format.\n"
|
||||
+ " xml: XML format.\n"
|
||||
+ " encoding - XML encoding format, defaults to UTF-8. default: UTF-8\n"
|
||||
+ " xslt: XML with a XSL Transformation applied.\n"
|
||||
+ " encoding - XML encoding format, defaults to UTF-8. default: UTF-8\n"
|
||||
+ " xsltFilename - The XSLT file name.\n"
|
||||
+ " yahtml: Yet Another HTML format.\n"
|
||||
+ " outputDir - Output directory.\n"
|
||||
+ "\n"
|
||||
+ "For example on windows: \n"
|
||||
+ "C:\\>pmd-bin-unknown\\bin\\pmd.bat -dir c:\\my\\source\\code -format text -R "
|
||||
+ "rulesets/java/quickstart.xml -version 1.5 -language java -debug\n"
|
||||
+ "C:\\>pmd-bin-unknown\\bin\\pmd.bat -dir c:\\my\\source\\code -f xml -rulesets "
|
||||
+ "rulesets/java/quickstart.xml,category/java/codestyle.xml -encoding UTF-8\n"
|
||||
+ "C:\\>pmd-bin-unknown\\bin\\pmd.bat -d c:\\my\\source\\code -rulesets rulesets/java/quickstart.xml "
|
||||
+ "-auxclasspath lib\\commons-collections.jar;lib\\derby.jar\n"
|
||||
+ "C:\\>pmd-bin-unknown\\bin\\pmd.bat -d c:\\my\\source\\code -f html -R rulesets/java/quickstart.xml "
|
||||
+ "-auxclasspath file:///C:/my/classpathfile\n"
|
||||
+ "\n"
|
||||
+ "For example on *nix: \n"
|
||||
+ "$ pmd-bin-unknown/bin/run.sh pmd -dir /home/workspace/src/main/java/code -f html -rulesets "
|
||||
+ "rulesets/java/quickstart.xml,category/java/codestyle.xml\n"
|
||||
+ "$ pmd-bin-unknown/bin/run.sh pmd -d ./src/main/java/code -R rulesets/java/quickstart.xml -f xslt "
|
||||
+ "-property xsltFilename=my-own.xsl\n"
|
||||
+ "$ pmd-bin-unknown/bin/run.sh pmd -d ./src/main/java/code -f html -R rulesets/java/quickstart.xml "
|
||||
+ "-auxclasspath commons-collections.jar:derby.jar\n"
|
||||
+ "\n"
|
||||
+ "\n"
|
||||
+ "\n";
|
||||
}
|
||||
|
Reference in New Issue
Block a user