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 info.globalcode.sql.dk.InfoLister.InfoType; |
22 import info.globalcode.sql.dk.InfoLister.InfoType; |
|
23 import java.io.ByteArrayInputStream; |
23 import java.util.Collection; |
24 import java.util.Collection; |
24 import static org.testng.Assert.*; |
25 import static org.testng.Assert.*; |
25 import org.testng.annotations.BeforeMethod; |
26 import org.testng.annotations.BeforeMethod; |
26 import org.testng.annotations.Test; |
27 import org.testng.annotations.Test; |
27 |
28 |
44 @BeforeMethod |
45 @BeforeMethod |
45 public void setUpMethod() throws Exception { |
46 public void setUpMethod() throws Exception { |
46 parser = new CLIParser(); |
47 parser = new CLIParser(); |
47 } |
48 } |
48 |
49 |
|
50 private CLIOptions parseOptions(String[] args) throws CLIParserException { |
|
51 return parser.parseOptions(args, new ByteArrayInputStream("".getBytes())); |
|
52 } |
|
53 |
49 @Test |
54 @Test |
50 public void testParseOptions_QueryNow_NoParams() throws InvalidOptionsException, CLIParserException { |
55 public void testParseOptions_QueryNow_NoParams() throws InvalidOptionsException, CLIParserException { |
51 String[] args = new String[]{ |
56 String[] args = new String[]{ |
52 Tokens.DB, DATABASE_NAME_1, |
57 Tokens.DB, DATABASE_NAME_1, |
53 Tokens.SQL, SQL_1}; |
58 Tokens.SQL, SQL_1}; |
54 CLIOptions options = parser.parseOptions(args); |
59 CLIOptions options = parseOptions(args); |
55 options.validate(); |
60 options.validate(); |
56 |
61 |
57 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
62 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
58 assertEquals(options.getSql(), SQL_1); |
63 assertEquals(options.getSql(), SQL_1); |
59 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
64 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
65 public void testParseOptions_QueryNow_Numbered() throws InvalidOptionsException, CLIParserException { |
70 public void testParseOptions_QueryNow_Numbered() throws InvalidOptionsException, CLIParserException { |
66 String[] args = new String[]{ |
71 String[] args = new String[]{ |
67 Tokens.DB, DATABASE_NAME_1, |
72 Tokens.DB, DATABASE_NAME_1, |
68 Tokens.SQL, SQL_1, |
73 Tokens.SQL, SQL_1, |
69 Tokens.DATA, DATA_1, DATA_2, DATA_3}; |
74 Tokens.DATA, DATA_1, DATA_2, DATA_3}; |
70 CLIOptions options = parser.parseOptions(args); |
75 CLIOptions options = parseOptions(args); |
71 options.validate(); |
76 options.validate(); |
72 |
77 |
73 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
78 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
74 assertEquals(options.getSql(), SQL_1); |
79 assertEquals(options.getSql(), SQL_1); |
75 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
80 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
87 String[] args = new String[]{ |
92 String[] args = new String[]{ |
88 Tokens.DB, DATABASE_NAME_1, |
93 Tokens.DB, DATABASE_NAME_1, |
89 Tokens.SQL, SQL_1, |
94 Tokens.SQL, SQL_1, |
90 Tokens.TYPES, " INTEGER,VARCHAR, BOOLEAN", |
95 Tokens.TYPES, " INTEGER,VARCHAR, BOOLEAN", |
91 Tokens.DATA, DATA_1, DATA_2, DATA_3}; |
96 Tokens.DATA, DATA_1, DATA_2, DATA_3}; |
92 CLIOptions options = parser.parseOptions(args); |
97 CLIOptions options = parseOptions(args); |
93 options.validate(); |
98 options.validate(); |
94 |
99 |
95 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
100 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
96 assertEquals(options.getSql(), SQL_1); |
101 assertEquals(options.getSql(), SQL_1); |
97 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
102 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
108 public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException { |
113 public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException { |
109 String[] args = new String[]{ |
114 String[] args = new String[]{ |
110 Tokens.DB, DATABASE_NAME_1, |
115 Tokens.DB, DATABASE_NAME_1, |
111 Tokens.SQL, SQL_1, |
116 Tokens.SQL, SQL_1, |
112 Tokens.DATA_NAMED, NAME_1, DATA_1, NAME_2, DATA_2, NAME_3, DATA_3}; |
117 Tokens.DATA_NAMED, NAME_1, DATA_1, NAME_2, DATA_2, NAME_3, DATA_3}; |
113 CLIOptions options = parser.parseOptions(args); |
118 CLIOptions options = parseOptions(args); |
114 options.validate(); |
119 options.validate(); |
115 |
120 |
116 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
121 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
117 assertEquals(options.getSql(), SQL_1); |
122 assertEquals(options.getSql(), SQL_1); |
118 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
123 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
128 Tokens.DB, DATABASE_NAME_1, |
133 Tokens.DB, DATABASE_NAME_1, |
129 Tokens.SQL, SQL_1, |
134 Tokens.SQL, SQL_1, |
130 Tokens.NAME_PREFIX, "$", |
135 Tokens.NAME_PREFIX, "$", |
131 Tokens.TYPES, " " + NAME_1 + TYPE_NAME_SEPARATOR + "INTEGER" + "," + NAME_3 + TYPE_NAME_SEPARATOR + "BOOLEAN", |
136 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}; |
137 Tokens.DATA_NAMED, NAME_1, DATA_1, NAME_2, DATA_2, NAME_3, DATA_3}; |
133 CLIOptions options = parser.parseOptions(args); |
138 CLIOptions options = parseOptions(args); |
134 options.validate(); |
139 options.validate(); |
135 |
140 |
136 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
141 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
137 assertEquals(options.getSql(), SQL_1); |
142 assertEquals(options.getSql(), SQL_1); |
138 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
143 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW); |
156 @Test |
161 @Test |
157 public void testParseOptions_PrepareBatch() throws InvalidOptionsException, CLIParserException { |
162 public void testParseOptions_PrepareBatch() throws InvalidOptionsException, CLIParserException { |
158 String[] args = new String[]{ |
163 String[] args = new String[]{ |
159 Tokens.BATCH, |
164 Tokens.BATCH, |
160 Tokens.SQL, SQL_1}; |
165 Tokens.SQL, SQL_1}; |
161 CLIOptions options = parser.parseOptions(args); |
166 CLIOptions options = parseOptions(args); |
162 options.validate(); |
167 options.validate(); |
163 |
168 |
164 assertEquals(options.getSql(), SQL_1); |
169 assertEquals(options.getSql(), SQL_1); |
165 assertEquals(options.getMode(), CLIOptions.MODE.PREPARE_BATCH); |
170 assertEquals(options.getMode(), CLIOptions.MODE.PREPARE_BATCH); |
166 } |
171 } |
168 @Test |
173 @Test |
169 public void testParseOptions_ExecuteBatch() throws InvalidOptionsException, CLIParserException { |
174 public void testParseOptions_ExecuteBatch() throws InvalidOptionsException, CLIParserException { |
170 String[] args = new String[]{ |
175 String[] args = new String[]{ |
171 Tokens.BATCH, |
176 Tokens.BATCH, |
172 Tokens.DB, DATABASE_NAME_1}; |
177 Tokens.DB, DATABASE_NAME_1}; |
173 CLIOptions options = parser.parseOptions(args); |
178 CLIOptions options = parseOptions(args); |
174 options.validate(); |
179 options.validate(); |
175 |
180 |
176 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
181 assertEquals(options.getDatabaseName(), DATABASE_NAME_1); |
177 assertEquals(options.getMode(), CLIOptions.MODE.EXECUTE_BATCH); |
182 assertEquals(options.getMode(), CLIOptions.MODE.EXECUTE_BATCH); |
178 } |
183 } |
179 |
184 |
180 @Test |
185 @Test |
181 public void testParseOptions_ShowInfo_Help() throws InvalidOptionsException, CLIParserException { |
186 public void testParseOptions_ShowInfo_Help() throws InvalidOptionsException, CLIParserException { |
182 String[] args = new String[]{Tokens.INFO_HELP}; |
187 String[] args = new String[]{Tokens.INFO_HELP}; |
183 CLIOptions options = parser.parseOptions(args); |
188 CLIOptions options = parseOptions(args); |
184 options.validate(); |
189 options.validate(); |
185 |
190 |
186 assertEquals(options.getMode(), CLIOptions.MODE.JUST_SHOW_INFO); |
191 assertEquals(options.getMode(), CLIOptions.MODE.JUST_SHOW_INFO); |
187 assertEquals(options.getShowInfo().size(), 1); |
192 assertEquals(options.getShowInfo().size(), 1); |
188 assertTrue(options.getShowInfo().contains(InfoType.HELP)); |
193 assertTrue(options.getShowInfo().contains(InfoType.HELP)); |