1 package info.globalcode.sql.dk;
3 import info.globalcode.sql.dk.CLIParser.Tokens;
5 import static org.testng.Assert.*;
6 import org.testng.annotations.BeforeMethod;
7 import org.testng.annotations.Test;
11 * @author Ing. František Kučera (frantovo.cz)
13 public class CLIParserTest {
15 private static final String DATABASE_NAME_1 = "some database 1";
16 private static final String SQL_1 = "SELECT * FROM table1";
17 private static final String DATA_1 = "aaa";
18 private static final String DATA_2 = "bbb";
19 private static final String DATA_3 = "ccc";
20 private CLIParser parser;
23 public void setUpMethod() throws Exception {
24 parser = new CLIParser();
28 public void testParseOptions_QueryNow_Numbered() throws InvalidOptionsException, CLIParserException {
29 String[] args = new String[]{
30 Tokens.DB, DATABASE_NAME_1,
32 Tokens.DATA, DATA_1, DATA_2, DATA_3};
33 CLIOptions options = parser.parseOptions(args);
36 assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
37 assertEquals(options.getSql(), SQL_1);
38 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
39 assertEquals(options.getNumberedParameters().size(), 3);
40 assertEquals(options.getNumberedParameters().get(0).getValue(), DATA_1);
41 assertEquals(options.getNumberedParameters().get(1).getValue(), DATA_2);
42 assertEquals(options.getNumberedParameters().get(2).getValue(), DATA_3);
43 assertEquals(options.getNumberedParameters().get(0).getType(), Parameter.DEFAULT_TYPE);
44 assertEquals(options.getNumberedParameters().get(1).getType(), Parameter.DEFAULT_TYPE);
45 assertEquals(options.getNumberedParameters().get(2).getType(), Parameter.DEFAULT_TYPE);
49 public void testParseOptions_QueryNow_Numbered_withTypes() throws InvalidOptionsException, CLIParserException {
50 String[] args = new String[]{
51 Tokens.DB, DATABASE_NAME_1,
53 Tokens.TYPES, " int,string, boolean",
54 Tokens.DATA, DATA_1, DATA_2, DATA_3};
55 CLIOptions options = parser.parseOptions(args);
58 assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
59 assertEquals(options.getSql(), SQL_1);
60 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
61 assertEquals(options.getNumberedParameters().size(), 3);
62 assertEquals(options.getNumberedParameters().get(0).getValue(), DATA_1);
63 assertEquals(options.getNumberedParameters().get(1).getValue(), DATA_2);
64 assertEquals(options.getNumberedParameters().get(2).getValue(), DATA_3);
65 assertEquals(options.getNumberedParameters().get(0).getType(), Types.INTEGER);
66 assertEquals(options.getNumberedParameters().get(1).getType(), Types.VARCHAR);
67 assertEquals(options.getNumberedParameters().get(2).getType(), Types.BOOLEAN);
71 public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException {
72 String[] args = new String[]{
73 Tokens.DB, DATABASE_NAME_1,
75 CLIOptions options = parser.parseOptions(args);
78 assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
79 assertEquals(options.getSql(), SQL_1);
80 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
84 public void testParseOptions_PrepareBatch() throws InvalidOptionsException, CLIParserException {
85 String[] args = new String[]{
88 CLIOptions options = parser.parseOptions(args);
91 assertEquals(options.getSql(), SQL_1);
92 assertEquals(options.getMode(), CLIOptions.MODE.PREPARE_BATCH);
96 public void testParseOptions_ExecuteBatch() throws InvalidOptionsException, CLIParserException {
97 String[] args = new String[]{
99 Tokens.DB, DATABASE_NAME_1};
100 CLIOptions options = parser.parseOptions(args);
103 assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
104 assertEquals(options.getMode(), CLIOptions.MODE.EXECUTE_BATCH);