summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSergey Tyurin <Sergey.V.Tyurin@gmail.com>2012-09-17 22:03:11 +0600
committerSergey Tyurin <Sergey.V.Tyurin@gmail.com>2012-09-18 11:19:40 +0600
commitc36c84f608a9a0f3877b37e2889bff6d8a1da88d (patch)
treef21356ee7f772d8b825a35a10a9bf7fd19d60b5b /src
parent8a4c3d11d8d74628fbe55dce61771810a841723e (diff)
downloadplatform_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.java4
-rw-r--r--src/test/java/com/beust/jcommander/JCommanderTest.java50
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 {