1 package info.globalcode.sql.dk;
3 import info.globalcode.sql.dk.CLIParser.Tokens;
4 import static org.testng.Assert.*;
5 import org.testng.annotations.BeforeMethod;
6 import org.testng.annotations.Test;
10 * @author Ing. František Kučera (frantovo.cz)
12 public class CLIParserTest {
14 private static final String DATABASE_NAME_1 = "some database 1";
15 private static final String SQL_1 = "SELECT * FROM table1";
16 private static final String DATA_1 = "aaa";
17 private static final String DATA_2 = "bbb";
18 private static final String DATA_3 = "ccc";
19 private CLIParser parser;
22 public void setUpMethod() throws Exception {
23 parser = new CLIParser();
27 public void testParseOptions_QueryNow_Numbered() throws InvalidOptionsException, CLIParserException {
28 String[] args = new String[]{Tokens.DB, DATABASE_NAME_1, Tokens.SQL, SQL_1, Tokens.DATA, DATA_1, DATA_2, DATA_3};
29 CLIOptions options = parser.parseOptions(args);
32 assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
33 assertEquals(options.getSql(), SQL_1);
34 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
35 assertEquals(options.getNumberedParameters().size(), 3);
36 assertEquals(options.getNumberedParameters().get(0).getValue(), DATA_1);
37 assertEquals(options.getNumberedParameters().get(1).getValue(), DATA_2);
38 assertEquals(options.getNumberedParameters().get(2).getValue(), DATA_3);
39 assertEquals(options.getNumberedParameters().get(0).getType(), Parameter.DEFAULT_TYPE);
40 assertEquals(options.getNumberedParameters().get(1).getType(), Parameter.DEFAULT_TYPE);
41 assertEquals(options.getNumberedParameters().get(2).getType(), Parameter.DEFAULT_TYPE);
45 public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException {
46 String[] args = new String[]{Tokens.DB, DATABASE_NAME_1, Tokens.SQL, SQL_1};
47 CLIOptions options = parser.parseOptions(args);
50 assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
51 assertEquals(options.getSql(), SQL_1);
52 assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
56 public void testParseOptions_PrepareBatch() throws InvalidOptionsException, CLIParserException {
57 String[] args = new String[]{Tokens.BATCH, Tokens.SQL, SQL_1};
58 CLIOptions options = parser.parseOptions(args);
61 assertEquals(options.getSql(), SQL_1);
62 assertEquals(options.getMode(), CLIOptions.MODE.PREPARE_BATCH);
66 public void testParseOptions_ExecuteBatch() throws InvalidOptionsException, CLIParserException {
67 String[] args = new String[]{Tokens.BATCH, Tokens.DB, DATABASE_NAME_1};
68 CLIOptions options = parser.parseOptions(args);
71 assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
72 assertEquals(options.getMode(), CLIOptions.MODE.EXECUTE_BATCH);