15 private static final String DATABASE_NAME_1 = "some database 1"; |
17 private static final String DATABASE_NAME_1 = "some database 1"; |
16 private static final String SQL_1 = "SELECT * FROM table1"; |
18 private static final String SQL_1 = "SELECT * FROM table1"; |
17 private static final String DATA_1 = "aaa"; |
19 private static final String DATA_1 = "aaa"; |
18 private static final String DATA_2 = "bbb"; |
20 private static final String DATA_2 = "bbb"; |
19 private static final String DATA_3 = "ccc"; |
21 private static final String DATA_3 = "ccc"; |
|
22 private static final String NAME_1 = "param1"; |
|
23 private static final String NAME_2 = "param2"; |
|
24 private static final String NAME_3 = "param3"; |
20 private CLIParser parser; |
25 private CLIParser parser; |
21 |
26 |
22 @BeforeMethod |
27 @BeforeMethod |
23 public void setUpMethod() throws Exception { |
28 public void setUpMethod() throws Exception { |
24 parser = new CLIParser(); |
29 parser = new CLIParser(); |
|
30 } |
|
31 |
|
32 @Test |
|
33 public void testParseOptions_QueryNow_NoParams() throws InvalidOptionsException, CLIParserException { |
|
34 String[] args = new String[]{ |
|
35 Tokens.DB, DATABASE_NAME_1, |
|
36 Tokens.SQL, SQL_1}; |
|
37 CLIOptions options = parser.parseOptions(args); |
|
38 options.validate(); |
|
39 |
|
40 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
|
41 assertEquals(options.getSql(), SQL_1); |
|
42 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
|
43 assertTrue(options.getNamedParameters().isEmpty(), "Named parameters should be empty."); |
|
44 assertTrue(options.getNumberedParameters().isEmpty(), "Numbered parameters should be empty."); |
25 } |
45 } |
26 |
46 |
27 @Test |
47 @Test |
28 public void testParseOptions_QueryNow_Numbered() throws InvalidOptionsException, CLIParserException { |
48 public void testParseOptions_QueryNow_Numbered() throws InvalidOptionsException, CLIParserException { |
29 String[] args = new String[]{ |
49 String[] args = new String[]{ |
69 |
89 |
70 @Test |
90 @Test |
71 public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException { |
91 public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException { |
72 String[] args = new String[]{ |
92 String[] args = new String[]{ |
73 Tokens.DB, DATABASE_NAME_1, |
93 Tokens.DB, DATABASE_NAME_1, |
74 Tokens.SQL, SQL_1}; |
94 Tokens.SQL, SQL_1, |
|
95 Tokens.DATA, TYPE_NAME_SEPARATOR + NAME_1, DATA_1, TYPE_NAME_SEPARATOR + NAME_2, DATA_2, TYPE_NAME_SEPARATOR + NAME_3, DATA_3}; |
75 CLIOptions options = parser.parseOptions(args); |
96 CLIOptions options = parser.parseOptions(args); |
76 options.validate(); |
97 options.validate(); |
77 |
98 |
78 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
99 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
79 assertEquals(options.getSql(), SQL_1); |
100 assertEquals(options.getSql(), SQL_1); |
80 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
101 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
|
102 assertEquals(options.getNamedParameters().size(), 3); |
|
103 assertNamedParameter(options.getNamedParameters(), NAME_1, DATA_1, Parameter.DEFAULT_TYPE); |
|
104 assertNamedParameter(options.getNamedParameters(), NAME_2, DATA_2, Parameter.DEFAULT_TYPE); |
|
105 assertNamedParameter(options.getNamedParameters(), NAME_3, DATA_3, Parameter.DEFAULT_TYPE); |
|
106 } |
|
107 |
|
108 @Test |
|
109 public void testParseOptions_QueryNow_Named_withTypes() throws InvalidOptionsException, CLIParserException { |
|
110 String[] args = new String[]{ |
|
111 Tokens.DB, DATABASE_NAME_1, |
|
112 Tokens.SQL, SQL_1, |
|
113 Tokens.NAME_PREFIX, "$", |
|
114 Tokens.TYPES, " " + NAME_1 + TYPE_NAME_SEPARATOR + "int" + "," + NAME_2 + TYPE_NAME_SEPARATOR + "string" + "," + NAME_3 + TYPE_NAME_SEPARATOR + "boolean", |
|
115 Tokens.DATA, "$" + NAME_1, DATA_1, "$" + NAME_2, DATA_2, "$" + NAME_3, DATA_3}; |
|
116 CLIOptions options = parser.parseOptions(args); |
|
117 options.validate(); |
|
118 |
|
119 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
|
120 assertEquals(options.getSql(), SQL_1); |
|
121 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
|
122 assertEquals(options.getNamedParameters().size(), 3); |
|
123 assertNamedParameter(options.getNamedParameters(), NAME_1, DATA_1, Types.INTEGER); |
|
124 assertNamedParameter(options.getNamedParameters(), NAME_2, DATA_2, Types.VARCHAR); |
|
125 assertNamedParameter(options.getNamedParameters(), NAME_3, DATA_3, Types.BOOLEAN); |
|
126 } |
|
127 |
|
128 private void assertNamedParameter(Collection<NamedParameter> params, String name, Object value, int type) { |
|
129 for (NamedParameter p : params) { |
|
130 if (name.equals(p.getName())) { |
|
131 assertEquals(p.getValue(), value, "value does not match – name: " + name); |
|
132 assertEquals(p.getType(), type, "value does not match – name: " + name); |
|
133 return; |
|
134 } |
|
135 } |
|
136 fail("Named parameter not found: " + name); |
81 } |
137 } |
82 |
138 |
83 @Test |
139 @Test |
84 public void testParseOptions_PrepareBatch() throws InvalidOptionsException, CLIParserException { |
140 public void testParseOptions_PrepareBatch() throws InvalidOptionsException, CLIParserException { |
85 String[] args = new String[]{ |
141 String[] args = new String[]{ |