diff options
Diffstat (limited to 'src/test/java/com/beust/jcommander/ConverterFactoryTest.java')
-rw-r--r-- | src/test/java/com/beust/jcommander/ConverterFactoryTest.java | 22 |
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()); } } |