You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by au...@apache.org on 2012/01/22 11:52:53 UTC
svn commit: r1234481 - in /incubator/opennlp/trunk/opennlp-tools/src:
main/java/opennlp/tools/cmdline/ArgumentParser.java
test/java/opennlp/tools/cmdline/ArgumentParserTest.java
Author: autayeu
Date: Sun Jan 22 10:52:53 2012
New Revision: 1234481
URL: http://svn.apache.org/viewvc?rev=1234481&view=rev
Log:
OPENNLP-418: ArgumentParser didn't account for interfaces with all optional arguments.
Modified:
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/ArgumentParser.java
incubator/opennlp/trunk/opennlp-tools/src/test/java/opennlp/tools/cmdline/ArgumentParserTest.java
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/ArgumentParser.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/ArgumentParser.java?rev=1234481&r1=1234480&r2=1234481&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/ArgumentParser.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/ArgumentParser.java Sun Jan 22 10:52:53 2012
@@ -321,9 +321,9 @@ public class ArgumentParser {
* @return null, if arguments are valid or error message otherwise
*/
public static <T> String validateArgumentsLoudly(String args[], Class<T>... argProxyInterfaces) {
- // number of parameters must be at least 2 and always be even
- if (args.length < 2 || args.length % 2 != 0) {
- return "Number of parameters must be at least 2 and always be even";
+ // number of parameters must be always be even
+ if (args.length % 2 != 0) {
+ return "Number of parameters must be always be even";
}
int argumentCount = 0;
Modified: incubator/opennlp/trunk/opennlp-tools/src/test/java/opennlp/tools/cmdline/ArgumentParserTest.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/test/java/opennlp/tools/cmdline/ArgumentParserTest.java?rev=1234481&r1=1234480&r2=1234481&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/test/java/opennlp/tools/cmdline/ArgumentParserTest.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/test/java/opennlp/tools/cmdline/ArgumentParserTest.java Sun Jan 22 10:52:53 2012
@@ -58,22 +58,26 @@ public class ArgumentParserTest {
ArgumentParser.createUsage(InvalidReturnType.class);
}
- interface SimpleArguments {
+ interface SimpleArguments extends AllOptionalArguments {
@ParameterDescription(valueName = "charset", description = "a charset encoding")
String getEncoding();
+ @OptionalParameter
+ Integer getCutoff();
+ }
+
+ interface AllOptionalArguments {
+
@ParameterDescription(valueName = "num")
@OptionalParameter(defaultValue = "100")
Integer getIterations();
-
- @OptionalParameter
- Integer getCutoff();
-
+
@ParameterDescription(valueName = "true|false")
@OptionalParameter(defaultValue = "true")
Boolean getAlphaNumOpt();
}
+
@Test
public void testSimpleArguments() {
@@ -95,7 +99,31 @@ public class ArgumentParserTest {
assertFalse(ArgumentParser.validateArguments(argsString.split(" "), SimpleArguments.class));
ArgumentParser.parse(argsString.split(" "), SimpleArguments.class);
}
-
+
+ @Test
+ public void testAllOptionalArgumentsOneArgument() {
+ String argsString = "-alphaNumOpt false";
+
+ assertTrue(ArgumentParser.validateArguments(argsString.split(" "), AllOptionalArguments.class));
+ ArgumentParser.parse(argsString.split(" "), AllOptionalArguments.class);
+ }
+
+ @Test
+ public void testAllOptionalArgumentsZeroArguments() {
+ String[] args = {};
+
+ assertTrue(ArgumentParser.validateArguments(args, AllOptionalArguments.class));
+ ArgumentParser.parse(args, AllOptionalArguments.class);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testAllOptionalArgumentsExtraArgument() {
+ String argsString = "-encoding UTF-8";
+
+ assertFalse(ArgumentParser.validateArguments(argsString.split(" "), AllOptionalArguments.class));
+ ArgumentParser.parse(argsString.split(" "), AllOptionalArguments.class);
+ }
+
@Test
public void testSimpleArgumentsUsage() {