java/sql-dk/test/info/globalcode/sql/dk/CLIParserTest.java
author František Kučera <franta-hg@frantovo.cz>
Sun, 15 Dec 2013 23:54:37 +0100
branchv_0
changeset 7 a7555ec6eea9
parent 6 c79a5b030e99
child 9 2ec52027b97f
permissions -rw-r--r--
more unit-tests
     1 package info.globalcode.sql.dk;
     2 
     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;
     7 
     8 /**
     9  *
    10  * @author Ing. František Kučera (frantovo.cz)
    11  */
    12 public class CLIParserTest {
    13 
    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;
    20 
    21 	@BeforeMethod
    22 	public void setUpMethod() throws Exception {
    23 		parser = new CLIParser();
    24 	}
    25 
    26 	@Test
    27 	public void testParseOptions_QueryNow_Numbered() throws InvalidOptionsException {
    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);
    30 		options.validate();
    31 
    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);
    42 	}
    43 
    44 	@Test
    45 	public void testParseOptions_QueryNow_Named() throws InvalidOptionsException {
    46 		String[] args = new String[]{Tokens.DB, DATABASE_NAME_1, Tokens.SQL, SQL_1, Tokens.TYPES};
    47 		CLIOptions options = parser.parseOptions(args);
    48 		options.validate();
    49 
    50 		assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
    51 		assertEquals(options.getSql(), SQL_1);
    52 		assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
    53 	}
    54 
    55 	@Test
    56 	public void testParseOptions_PrepareBatch() throws InvalidOptionsException {
    57 		String[] args = new String[]{Tokens.BATCH, Tokens.SQL, SQL_1};
    58 		CLIOptions options = parser.parseOptions(args);
    59 		options.validate();
    60 
    61 		assertEquals(options.getSql(), SQL_1);
    62 		assertEquals(options.getMode(), CLIOptions.MODE.PREPARE_BATCH);
    63 	}
    64 
    65 	@Test
    66 	public void testParseOptions_ExecuteBatch() throws InvalidOptionsException {
    67 		String[] args = new String[]{Tokens.BATCH, Tokens.DB, DATABASE_NAME_1};
    68 		CLIOptions options = parser.parseOptions(args);
    69 		options.validate();
    70 
    71 		assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
    72 		assertEquals(options.getMode(), CLIOptions.MODE.EXECUTE_BATCH);
    73 	}
    74 }