# HG changeset patch # User František Kučera # Date 1387148730 -3600 # Node ID f528406f33f48d6ba3eec029aafb6aa98466593f # Parent 2ec52027b97fb6aec9fa574ad9de55afc04a59c6 unit-test: types diff -r 2ec52027b97f -r f528406f33f4 java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java --- 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 { diff -r 2ec52027b97f -r f528406f33f4 java/sql-dk/test/info/globalcode/sql/dk/CLIParserTest.java --- 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);