java/sql-dk/test/info/globalcode/sql/dk/CLIParserTest.java
author František Kučera <franta-hg@frantovo.cz>
Mon, 16 Dec 2013 00:07:46 +0100
branchv_0
changeset 11 2712ded000ef
parent 10 f528406f33f4
child 12 2dcb67d90fd2
permissions -rw-r--r--
just indent
     1 package info.globalcode.sql.dk;
     2 
     3 import info.globalcode.sql.dk.CLIParser.Tokens;
     4 import java.sql.Types;
     5 import static org.testng.Assert.*;
     6 import org.testng.annotations.BeforeMethod;
     7 import org.testng.annotations.Test;
     8 
     9 /**
    10  *
    11  * @author Ing. František Kučera (frantovo.cz)
    12  */
    13 public class CLIParserTest {
    14 
    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;
    21 
    22 	@BeforeMethod
    23 	public void setUpMethod() throws Exception {
    24 		parser = new CLIParser();
    25 	}
    26 
    27 	@Test
    28 	public void testParseOptions_QueryNow_Numbered() throws InvalidOptionsException, CLIParserException {
    29 		String[] args = new String[]{
    30 			Tokens.DB, DATABASE_NAME_1,
    31 			Tokens.SQL, SQL_1,
    32 			Tokens.DATA, DATA_1, DATA_2, DATA_3};
    33 		CLIOptions options = parser.parseOptions(args);
    34 		options.validate();
    35 
    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);
    46 	}
    47 
    48 	@Test
    49 	public void testParseOptions_QueryNow_Numbered_withTypes() throws InvalidOptionsException, CLIParserException {
    50 		String[] args = new String[]{
    51 			Tokens.DB, DATABASE_NAME_1,
    52 			Tokens.SQL, SQL_1,
    53 			Tokens.TYPES, " int,string, boolean",
    54 			Tokens.DATA, DATA_1, DATA_2, DATA_3};
    55 		CLIOptions options = parser.parseOptions(args);
    56 		options.validate();
    57 
    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);
    68 	}
    69 
    70 	@Test
    71 	public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException {
    72 		String[] args = new String[]{
    73 			Tokens.DB, DATABASE_NAME_1,
    74 			Tokens.SQL, SQL_1};
    75 		CLIOptions options = parser.parseOptions(args);
    76 		options.validate();
    77 
    78 		assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
    79 		assertEquals(options.getSql(), SQL_1);
    80 		assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
    81 	}
    82 
    83 	@Test
    84 	public void testParseOptions_PrepareBatch() throws InvalidOptionsException, CLIParserException {
    85 		String[] args = new String[]{
    86 			Tokens.BATCH,
    87 			Tokens.SQL, SQL_1};
    88 		CLIOptions options = parser.parseOptions(args);
    89 		options.validate();
    90 
    91 		assertEquals(options.getSql(), SQL_1);
    92 		assertEquals(options.getMode(), CLIOptions.MODE.PREPARE_BATCH);
    93 	}
    94 
    95 	@Test
    96 	public void testParseOptions_ExecuteBatch() throws InvalidOptionsException, CLIParserException {
    97 		String[] args = new String[]{
    98 			Tokens.BATCH,
    99 			Tokens.DB, DATABASE_NAME_1};
   100 		CLIOptions options = parser.parseOptions(args);
   101 		options.validate();
   102 
   103 		assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
   104 		assertEquals(options.getMode(), CLIOptions.MODE.EXECUTE_BATCH);
   105 	}
   106 }