--- a/java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java Sun Dec 15 23:58:58 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java Mon Dec 16 00:05:30 2013 +0100
@@ -39,7 +39,7 @@
case Tokens.TYPES:
String typesString = fetchNext(args, ++i);
- for (String oneType : typesString.split("\\s*,\\s*")) {
+ for (String oneType : typesString.split(",")) {
int sepatratorIndex = oneType.indexOf(TYPE_NAME_SEPARATOR);
if (sepatratorIndex == -1) {
numberedTypes.add(getType(oneType));
@@ -127,7 +127,7 @@
}
private int getType(String typeString) throws CLIParserException {
- Integer type = types.get(typeString);
+ Integer type = types.get(typeString.trim());
if (type == null) {
throw new CLIParserException("Unsupported type: " + typeString);
} else {
--- a/java/sql-dk/test/info/globalcode/sql/dk/CLIParserTest.java Sun Dec 15 23:58:58 2013 +0100
+++ b/java/sql-dk/test/info/globalcode/sql/dk/CLIParserTest.java Mon Dec 16 00:05:30 2013 +0100
@@ -1,6 +1,7 @@
package info.globalcode.sql.dk;
import info.globalcode.sql.dk.CLIParser.Tokens;
+import java.sql.Types;
import static org.testng.Assert.*;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -42,6 +43,28 @@
}
@Test
+ public void testParseOptions_QueryNow_Numbered_withTypes() throws InvalidOptionsException, CLIParserException {
+ String[] args = new String[]{
+ Tokens.DB, DATABASE_NAME_1,
+ Tokens.SQL, SQL_1,
+ Tokens.TYPES, " int,string, boolean",
+ Tokens.DATA, DATA_1, DATA_2, DATA_3};
+ CLIOptions options = parser.parseOptions(args);
+ options.validate();
+
+ assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
+ assertEquals(options.getSql(), SQL_1);
+ assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
+ assertEquals(options.getNumberedParameters().size(), 3);
+ assertEquals(options.getNumberedParameters().get(0).getValue(), DATA_1);
+ assertEquals(options.getNumberedParameters().get(1).getValue(), DATA_2);
+ assertEquals(options.getNumberedParameters().get(2).getValue(), DATA_3);
+ assertEquals(options.getNumberedParameters().get(0).getType(), Types.INTEGER);
+ assertEquals(options.getNumberedParameters().get(1).getType(), Types.VARCHAR);
+ assertEquals(options.getNumberedParameters().get(2).getType(), Types.BOOLEAN);
+ }
+
+ @Test
public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException {
String[] args = new String[]{Tokens.DB, DATABASE_NAME_1, Tokens.SQL, SQL_1};
CLIOptions options = parser.parseOptions(args);