diff options
author | Cedric Beust <cedric@beust.com> | 2012-08-07 04:29:57 -0700 |
---|---|---|
committer | Cedric Beust <cedric@beust.com> | 2012-08-07 04:29:57 -0700 |
commit | 5377e48b0f7b1b77aa9d546313b11767559068de (patch) | |
tree | ad23494cbe105df2e422d40cb70bbef75f45abfa /src/test/java | |
parent | 3dd7558e2aee86e647b4530f536cbb1fa574b87a (diff) | |
download | platform_external_jcommander-5377e48b0f7b1b77aa9d546313b11767559068de.tar.gz platform_external_jcommander-5377e48b0f7b1b77aa9d546313b11767559068de.tar.bz2 platform_external_jcommander-5377e48b0f7b1b77aa9d546313b11767559068de.zip |
IParameterValidator2.
Diffstat (limited to 'src/test/java')
-rw-r--r-- | src/test/java/com/beust/jcommander/JCommanderTest.java | 34 | ||||
-rw-r--r-- | src/test/java/com/beust/jcommander/MyClass.java | 14 |
2 files changed, 42 insertions, 6 deletions
diff --git a/src/test/java/com/beust/jcommander/JCommanderTest.java b/src/test/java/com/beust/jcommander/JCommanderTest.java index 5b41e0b..22c5082 100644 --- a/src/test/java/com/beust/jcommander/JCommanderTest.java +++ b/src/test/java/com/beust/jcommander/JCommanderTest.java @@ -839,11 +839,9 @@ public class JCommanderTest { public void parameterWithOneDoubleQuote() { @Parameters(separators = "=") class Arg { - @Parameter(names = { "-p", "--param" }) private String param; } - JCommander jc = new JCommander(new MyClass()); jc.parse("-p=\""); } @@ -865,14 +863,42 @@ public class JCommanderTest { private List<String> rules = new ArrayList<String>(); } Arg a = new Arg(); - StringBuilder sb = new StringBuilder(); new JCommander(a, "-rule", "some test"); Assert.assertEquals(a.rules, Arrays.asList("some test")); } + static class V2 implements IParameterValidator2 { + final static List<String> names = Lists.newArrayList(); + static boolean validateCalled = false; + + @Override + public void validate(String name, String value) throws ParameterException { + validateCalled = true; + } + + @Override + public void validate(String name, String value, ParameterDescription pd) + throws ParameterException { + names.addAll(Arrays.asList(pd.getParameter().names())); + } + } + + public void validator2() { + class Arg { + @Parameter(names = { "-h", "--host" }, validateWith = V2.class) + String host; + } + Arg a = new Arg(); + V2.names.clear(); + V2.validateCalled = false; + new JCommander(a, "--host", "h"); + Assert.assertEquals(V2.names, Arrays.asList(new String[] { "-h", "--host" })); + Assert.assertTrue(V2.validateCalled); + } + @Test(enabled = false) public static void main(String[] args) throws Exception { - new JCommanderTest().spaces(); + new JCommanderTest().parameterWithOneDoubleQuote(); // class A { // @Parameter(names = "-short", required = true) // List<String> parameters; diff --git a/src/test/java/com/beust/jcommander/MyClass.java b/src/test/java/com/beust/jcommander/MyClass.java index 3bf46b5..c2d3371 100644 --- a/src/test/java/com/beust/jcommander/MyClass.java +++ b/src/test/java/com/beust/jcommander/MyClass.java @@ -1,14 +1,24 @@ package com.beust.jcommander; +import org.testng.Assert; + + @Parameters(separators = "=") public class MyClass { - @Parameter(names = { "-p", "--param" }) + @Parameter(names = { "-p", "--param" }, validateWith = MyValidator.class) private String param; public static void main(String[] args) { JCommander jCommander = new JCommander(new MyClass()); - jCommander.parse("-p=\""); + jCommander.parse("--param=value"); + } + + public static class MyValidator implements IParameterValidator { + @Override + public void validate(String name, String value) throws ParameterException { + Assert.assertEquals(value, "\""); + } } }
\ No newline at end of file |