17 */ |
17 */ |
18 package info.globalcode.sql.dk; |
18 package info.globalcode.sql.dk; |
19 |
19 |
20 import info.globalcode.sql.dk.CLIParser.Tokens; |
20 import info.globalcode.sql.dk.CLIParser.Tokens; |
21 import static info.globalcode.sql.dk.CLIParser.TYPE_NAME_SEPARATOR; |
21 import static info.globalcode.sql.dk.CLIParser.TYPE_NAME_SEPARATOR; |
22 import java.sql.Types; |
|
23 import java.util.Collection; |
22 import java.util.Collection; |
24 import static org.testng.Assert.*; |
23 import static org.testng.Assert.*; |
25 import org.testng.annotations.BeforeMethod; |
24 import org.testng.annotations.BeforeMethod; |
26 import org.testng.annotations.Test; |
25 import org.testng.annotations.Test; |
27 |
26 |
85 @Test |
84 @Test |
86 public void testParseOptions_QueryNow_Numbered_withTypes() throws InvalidOptionsException, CLIParserException { |
85 public void testParseOptions_QueryNow_Numbered_withTypes() throws InvalidOptionsException, CLIParserException { |
87 String[] args = new String[]{ |
86 String[] args = new String[]{ |
88 Tokens.DB, DATABASE_NAME_1, |
87 Tokens.DB, DATABASE_NAME_1, |
89 Tokens.SQL, SQL_1, |
88 Tokens.SQL, SQL_1, |
90 Tokens.TYPES, " int,string, boolean", |
89 Tokens.TYPES, " INTEGER,VARCHAR, BOOLEAN", |
91 Tokens.DATA, DATA_1, DATA_2, DATA_3}; |
90 Tokens.DATA, DATA_1, DATA_2, DATA_3}; |
92 CLIOptions options = parser.parseOptions(args); |
91 CLIOptions options = parser.parseOptions(args); |
93 options.validate(); |
92 options.validate(); |
94 |
93 |
95 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
94 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
97 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
96 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
98 assertEquals(options.getNumberedParameters().size(), 3); |
97 assertEquals(options.getNumberedParameters().size(), 3); |
99 assertEquals(options.getNumberedParameters().get(0).getValue(), DATA_1); |
98 assertEquals(options.getNumberedParameters().get(0).getValue(), DATA_1); |
100 assertEquals(options.getNumberedParameters().get(1).getValue(), DATA_2); |
99 assertEquals(options.getNumberedParameters().get(1).getValue(), DATA_2); |
101 assertEquals(options.getNumberedParameters().get(2).getValue(), DATA_3); |
100 assertEquals(options.getNumberedParameters().get(2).getValue(), DATA_3); |
102 assertEquals(options.getNumberedParameters().get(0).getType(), Types.INTEGER); |
101 assertEquals(options.getNumberedParameters().get(0).getType(), SQLType.INTEGER); |
103 assertEquals(options.getNumberedParameters().get(1).getType(), Types.VARCHAR); |
102 assertEquals(options.getNumberedParameters().get(1).getType(), SQLType.VARCHAR); |
104 assertEquals(options.getNumberedParameters().get(2).getType(), Types.BOOLEAN); |
103 assertEquals(options.getNumberedParameters().get(2).getType(), SQLType.BOOLEAN); |
105 } |
104 } |
106 |
105 |
107 @Test |
106 @Test |
108 public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException { |
107 public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException { |
109 String[] args = new String[]{ |
108 String[] args = new String[]{ |
126 public void testParseOptions_QueryNow_Named_withTypes() throws InvalidOptionsException, CLIParserException { |
125 public void testParseOptions_QueryNow_Named_withTypes() throws InvalidOptionsException, CLIParserException { |
127 String[] args = new String[]{ |
126 String[] args = new String[]{ |
128 Tokens.DB, DATABASE_NAME_1, |
127 Tokens.DB, DATABASE_NAME_1, |
129 Tokens.SQL, SQL_1, |
128 Tokens.SQL, SQL_1, |
130 Tokens.NAME_PREFIX, "$", |
129 Tokens.NAME_PREFIX, "$", |
131 Tokens.TYPES, " " + NAME_1 + TYPE_NAME_SEPARATOR + "int" + "," + NAME_3 + TYPE_NAME_SEPARATOR + "boolean", |
130 Tokens.TYPES, " " + NAME_1 + TYPE_NAME_SEPARATOR + "INTEGER" + "," + NAME_3 + TYPE_NAME_SEPARATOR + "BOOLEAN", |
132 Tokens.DATA_NAMED, NAME_1, DATA_1, NAME_2, DATA_2, NAME_3, DATA_3}; |
131 Tokens.DATA_NAMED, NAME_1, DATA_1, NAME_2, DATA_2, NAME_3, DATA_3}; |
133 CLIOptions options = parser.parseOptions(args); |
132 CLIOptions options = parser.parseOptions(args); |
134 options.validate(); |
133 options.validate(); |
135 |
134 |
136 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
135 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
137 assertEquals(options.getSql(), SQL_1); |
136 assertEquals(options.getSql(), SQL_1); |
138 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
137 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
139 assertEquals(options.getNamedParameters().size(), 3); |
138 assertEquals(options.getNamedParameters().size(), 3); |
140 assertNamedParameter(options.getNamedParameters(), NAME_1, DATA_1, Types.INTEGER); |
139 assertNamedParameter(options.getNamedParameters(), NAME_1, DATA_1, SQLType.INTEGER); |
141 assertNamedParameter(options.getNamedParameters(), NAME_2, DATA_2, Parameter.DEFAULT_TYPE); |
140 assertNamedParameter(options.getNamedParameters(), NAME_2, DATA_2, Parameter.DEFAULT_TYPE); |
142 assertNamedParameter(options.getNamedParameters(), NAME_3, DATA_3, Types.BOOLEAN); |
141 assertNamedParameter(options.getNamedParameters(), NAME_3, DATA_3, SQLType.BOOLEAN); |
143 } |
142 } |
144 |
143 |
145 private void assertNamedParameter(Collection<NamedParameter> params, String name, Object value, int type) { |
144 private void assertNamedParameter(Collection<NamedParameter> params, String name, Object value, SQLType type) { |
146 for (NamedParameter p : params) { |
145 for (NamedParameter p : params) { |
147 if (name.equals(p.getName())) { |
146 if (name.equals(p.getName())) { |
148 assertEquals(p.getValue(), value, "value does not match – name: " + name); |
147 assertEquals(p.getValue(), value, "value does not match – name: " + name); |
149 assertEquals(p.getType(), type, "value does not match – name: " + name); |
148 assertEquals(p.getType(), type, "value does not match – name: " + name); |
150 return; |
149 return; |