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[]{Tokens.DB, DATABASE_NAME_1, Tokens.SQL, SQL_1, Tokens.DATA, DATA_1, DATA_2, DATA_3};
30 CLIOptions options = parser.parseOptions(args);
33 assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
34 assertEquals(options.getSql(), SQL_1);
35 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
36 assertEquals(options.getNumberedParameters().size(), 3);
37 assertEquals(options.getNumberedParameters().get(0).getValue(), DATA_1);
38 assertEquals(options.getNumberedParameters().get(1).getValue(), DATA_2);
39 assertEquals(options.getNumberedParameters().get(2).getValue(), DATA_3);
40 assertEquals(options.getNumberedParameters().get(0).getType(), Parameter.DEFAULT_TYPE);
41 assertEquals(options.getNumberedParameters().get(1).getType(), Parameter.DEFAULT_TYPE);
42 assertEquals(options.getNumberedParameters().get(2).getType(), Parameter.DEFAULT_TYPE);
46 public void testParseOptions_QueryNow_Numbered_withTypes() throws InvalidOptionsException, CLIParserException {
47 String[] args = new String[]{
48 Tokens.DB, DATABASE_NAME_1,
50 Tokens.TYPES, " int,string, boolean",
51 Tokens.DATA, DATA_1, DATA_2, DATA_3};
52 CLIOptions options = parser.parseOptions(args);
55 assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
56 assertEquals(options.getSql(), SQL_1);
57 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
58 assertEquals(options.getNumberedParameters().size(), 3);
59 assertEquals(options.getNumberedParameters().get(0).getValue(), DATA_1);
60 assertEquals(options.getNumberedParameters().get(1).getValue(), DATA_2);
61 assertEquals(options.getNumberedParameters().get(2).getValue(), DATA_3);
62 assertEquals(options.getNumberedParameters().get(0).getType(), Types.INTEGER);
63 assertEquals(options.getNumberedParameters().get(1).getType(), Types.VARCHAR);
64 assertEquals(options.getNumberedParameters().get(2).getType(), Types.BOOLEAN);
68 public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException {
69 String[] args = new String[]{Tokens.DB, DATABASE_NAME_1, Tokens.SQL, SQL_1};
70 CLIOptions options = parser.parseOptions(args);
73 assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
74 assertEquals(options.getSql(), SQL_1);
75 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
79 public void testParseOptions_PrepareBatch() throws InvalidOptionsException, CLIParserException {
80 String[] args = new String[]{Tokens.BATCH, Tokens.SQL, SQL_1};
81 CLIOptions options = parser.parseOptions(args);
84 assertEquals(options.getSql(), SQL_1);
85 assertEquals(options.getMode(), CLIOptions.MODE.PREPARE_BATCH);
89 public void testParseOptions_ExecuteBatch() throws InvalidOptionsException, CLIParserException {
90 String[] args = new String[]{Tokens.BATCH, Tokens.DB, DATABASE_NAME_1};
91 CLIOptions options = parser.parseOptions(args);
94 assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
95 assertEquals(options.getMode(), CLIOptions.MODE.EXECUTE_BATCH);