summaryrefslogtreecommitdiff
path: root/src/test/java/com/beust/jcommander/ConverterFactoryTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/beust/jcommander/ConverterFactoryTest.java')
-rw-r--r--src/test/java/com/beust/jcommander/ConverterFactoryTest.java22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/test/java/com/beust/jcommander/ConverterFactoryTest.java b/src/test/java/com/beust/jcommander/ConverterFactoryTest.java
index e02166e..4b8b923 100644
--- a/src/test/java/com/beust/jcommander/ConverterFactoryTest.java
+++ b/src/test/java/com/beust/jcommander/ConverterFactoryTest.java
@@ -62,9 +62,10 @@ public class ConverterFactoryTest {
* Test that main parameters can be used with string converters,
* either with a factory or from the annotation.
*/
- private void mainWithHostPortParameters(IStringConverterFactory f, IHostPorts a) {
+ private void mainWithHostPortParameters(IStringConverterFactory f, IStringConverterInstanceFactory f2, IHostPorts a) {
JCommander jc = new JCommander(a);
if (f != null) jc.addConverterFactory(f);
+ if (f2 != null) jc.addConverterInstanceFactory(f2);
jc.parse("a.com:10", "b.com:20");
Assert.assertEquals(a.getHostPorts().get(0).host, "a.com");
Assert.assertEquals(a.getHostPorts().get(0).port.intValue(), 10);
@@ -74,12 +75,27 @@ public class ConverterFactoryTest {
@Test
public void mainWithoutFactory() {
- mainWithHostPortParameters(null, new ArgsMainParameter1());
+ mainWithHostPortParameters(null, null, new ArgsMainParameter2());
+ }
+
+ @Test(expectedExceptions = RuntimeException.class)
+ public void mainWithoutConverterWithoutFactory() {
+ mainWithHostPortParameters(null, null, new ArgsMainParameter1());
}
@Test
public void mainWithFactory() {
- mainWithHostPortParameters(CONVERTER_FACTORY, new ArgsMainParameter2());
+ mainWithHostPortParameters(CONVERTER_FACTORY, null, new ArgsMainParameter1());
+ }
+
+ @Test
+ public void mainWithInstanceFactory() {
+ mainWithHostPortParameters(null, new IStringConverterInstanceFactory() {
+ @Override
+ public IStringConverter<?> getConverterInstance(Parameter parameter, Class<?> forType, String optionName) {
+ return HostPort.class.equals(forType) ? new HostPortConverter() : null;
+ }
+ }, new ArgsMainParameter1());
}
}