diff options
author | Sergey Tyurin <Sergey.V.Tyurin@gmail.com> | 2012-09-17 22:03:11 +0600 |
---|---|---|
committer | Sergey Tyurin <Sergey.V.Tyurin@gmail.com> | 2012-09-18 11:19:40 +0600 |
commit | c36c84f608a9a0f3877b37e2889bff6d8a1da88d (patch) | |
tree | f21356ee7f772d8b825a35a10a9bf7fd19d60b5b /src | |
parent | 8a4c3d11d8d74628fbe55dce61771810a841723e (diff) | |
download | platform_external_jcommander-c36c84f608a9a0f3877b37e2889bff6d8a1da88d.tar.gz platform_external_jcommander-c36c84f608a9a0f3877b37e2889bff6d8a1da88d.tar.bz2 platform_external_jcommander-c36c84f608a9a0f3877b37e2889bff6d8a1da88d.zip |
Fix usage() to print missing new-line characters.
The change affects the result of usage() when:
- there are commands and no main parameters
- there are commands without parameters
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/beust/jcommander/JCommander.java | 4 | ||||
-rw-r--r-- | src/test/java/com/beust/jcommander/JCommanderTest.java | 50 |
2 files changed, 52 insertions, 2 deletions
diff --git a/src/main/java/com/beust/jcommander/JCommander.java b/src/main/java/com/beust/jcommander/JCommander.java index 8965f3b..16ca88e 100644 --- a/src/main/java/com/beust/jcommander/JCommander.java +++ b/src/main/java/com/beust/jcommander/JCommander.java @@ -1032,10 +1032,10 @@ public class JCommander { String programName = m_programName != null ? m_programName.getDisplayName() : "<main class>"; out.append(indent).append("Usage: " + programName + " [options]"); if (hasCommands) out.append(indent).append(" [command] [command options]"); -// out.append("\n"); if (m_mainParameterDescription != null) { out.append(" " + m_mainParameterDescription.getDescription()); } + out.append("\n"); // // Align the descriptions at the "longestName" column @@ -1062,7 +1062,7 @@ public class JCommander { // Display all the names and descriptions // int descriptionIndent = 6; - if (sorted.size() > 0) out.append(indent).append("\n").append(indent).append(" Options:\n"); + if (sorted.size() > 0) out.append(indent).append(" Options:\n"); for (ParameterDescription pd : sorted) { WrappedParameter parameter = pd.getParameter(); out.append(indent).append(" " diff --git a/src/test/java/com/beust/jcommander/JCommanderTest.java b/src/test/java/com/beust/jcommander/JCommanderTest.java index 22c5082..b705bfa 100644 --- a/src/test/java/com/beust/jcommander/JCommanderTest.java +++ b/src/test/java/com/beust/jcommander/JCommanderTest.java @@ -895,6 +895,56 @@ public class JCommanderTest { Assert.assertEquals(V2.names, Arrays.asList(new String[] { "-h", "--host" })); Assert.assertTrue(V2.validateCalled); } + + public void usageCommandsUnderUsage() { + class Arg { + } + @Parameters(commandDescription = "command a") + class ArgCommandA { + @Parameter(description = "command a parameters") + List<String> parameters; + } + @Parameters(commandDescription = "command b") + class ArgCommandB { + @Parameter(description = "command b parameters") + List<String> parameters; + } + + Arg a = new Arg(); + + JCommander c = new JCommander(a); + c.addCommand("a", new ArgCommandA()); + c.addCommand("b", new ArgCommandB()); + + StringBuilder sb = new StringBuilder(); + c.usage(sb); + Assert.assertTrue(sb.toString().contains("[command options]\n Commands:")); + } + + public void usageWithEmpytLine() { + class Arg { + } + @Parameters(commandDescription = "command a") + class ArgCommandA { + @Parameter(description = "command a parameters") + List<String> parameters; + } + @Parameters(commandDescription = "command b") + class ArgCommandB { + @Parameter(description = "command b parameters") + List<String> parameters; + } + + Arg a = new Arg(); + + JCommander c = new JCommander(a); + c.addCommand("a", new ArgCommandA()); + c.addCommand("b", new ArgCommandB()); + + StringBuilder sb = new StringBuilder(); + c.usage(sb); + Assert.assertTrue(sb.toString().contains("command a parameters\n\n b")); + } @Test(enabled = false) public static void main(String[] args) throws Exception { |