summaryrefslogtreecommitdiff
path: root/src/test/java/com/beust/jcommander/command/CommandTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/beust/jcommander/command/CommandTest.java')
-rw-r--r--src/test/java/com/beust/jcommander/command/CommandTest.java57
1 files changed, 51 insertions, 6 deletions
diff --git a/src/test/java/com/beust/jcommander/command/CommandTest.java b/src/test/java/com/beust/jcommander/command/CommandTest.java
index cf921bd..5cb7c34 100644
--- a/src/test/java/com/beust/jcommander/command/CommandTest.java
+++ b/src/test/java/com/beust/jcommander/command/CommandTest.java
@@ -18,12 +18,13 @@
package com.beust.jcommander.command;
+import com.beust.jcommander.ArgsValidate2;
import com.beust.jcommander.JCommander;
import com.beust.jcommander.ParameterException;
-
import org.testng.Assert;
import org.testng.annotations.Test;
+import java.io.File;
import java.util.Arrays;
public class CommandTest {
@@ -75,11 +76,6 @@ public class CommandTest {
jc.addCommand("commit", commit);
jc.parse("-v", "commit", "--amend", "--author=cbeust", "A.java", "B.java");
-// jc.setProgramName("TestCommander");
-// jc.usage();
-// jc.usage("add");
-// jc.usage("commit");
-
Assert.assertTrue(cm.verbose);
Assert.assertEquals(jc.getParsedCommand(), "commit");
Assert.assertTrue(commit.amend);
@@ -109,6 +105,55 @@ public class CommandTest {
Assert.assertFalse(out.toString().contains("hidden Hidden command to add file contents to the index"));
}
+ @Test
+ public void noParametersAnnotationOnCommandTest() {
+ CommandMain cm = new CommandMain();
+ JCommander jc = new JCommander(cm);
+ CommandNoParametersAnnotation noParametersAnnotation = new CommandNoParametersAnnotation();
+ jc.addCommand("no-annotation", noParametersAnnotation);
+
+ jc.setProgramName("TestCommander");
+ StringBuilder out = new StringBuilder();
+ jc.usage(out);
+
+ Assert.assertTrue(out.toString().contains("no-annotation"));
+ }
+
+ @Test
+ public void noTrailingSpaceInUsageTest() {
+ CommandMain cm = new CommandMain();
+ JCommander jc = new JCommander(cm);
+ CommandAdd add = new CommandAdd();
+ jc.addCommand("add", add);
+ CommandCommit commit = new CommandCommit();
+ jc.addCommand("commit", commit);
+ jc.parse("-v", "commit", "--amend", "--author=cbeust", "A.java", "B.java");
+ StringBuilder out = new StringBuilder();
+ jc.usage(out);
+ String firstLine = out.toString().split("\n")[0];
+ Assert.assertFalse(firstLine.endsWith(" "), "Usage should not have trailing spaces");
+ }
+
+ @Test(expectedExceptions = ParameterException.class)
+ public void validateSubCommand() throws Exception {
+ JCommander jc = new JCommander(new CommandMain());
+ final ArgsValidate2 sub = new ArgsValidate2();
+ sub.template = null;
+ jc.addCommand("sub", sub);
+ jc.parse("sub", "-template", "foo");
+ }
+
+ @Test
+ public void doNotValidateSubCommand() throws Exception {
+ JCommander jc = new JCommander(new CommandMain());
+ final ArgsValidate2 sub = new ArgsValidate2();
+ sub.template = null;
+ jc.addCommand("sub", sub);
+ jc.parseWithoutValidation("sub", "-template", "foo");
+ Assert.assertEquals(sub.template, new File("foo"));
+
+ }
+
public static void main(String[] args) {
new CommandTest().shouldComplainIfNoAnnotations();
}