java/sql-dk/test/info/globalcode/sql/dk/CLIParserTest.java
author František Kučera <franta-hg@frantovo.cz>
Mon, 16 Dec 2013 00:05:30 +0100
branchv_0
changeset 10 f528406f33f4
parent 9 2ec52027b97f
child 11 2712ded000ef
permissions -rw-r--r--
unit-test: types
     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[]{Tokens.DB, DATABASE_NAME_1, Tokens.SQL, SQL_1, Tokens.DATA, DATA_1, DATA_2, DATA_3};
    30 		CLIOptions options = parser.parseOptions(args);
    31 		options.validate();
    32 
    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);
    43 	}
    44 
    45 	@Test
    46 	public void testParseOptions_QueryNow_Numbered_withTypes() throws InvalidOptionsException, CLIParserException {
    47 		String[] args = new String[]{
    48 			Tokens.DB, DATABASE_NAME_1,
    49 			Tokens.SQL, SQL_1,
    50 			Tokens.TYPES, " int,string, boolean",
    51 			Tokens.DATA, DATA_1, DATA_2, DATA_3};
    52 		CLIOptions options = parser.parseOptions(args);
    53 		options.validate();
    54 
    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);
    65 	}
    66 
    67 	@Test
    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);
    71 		options.validate();
    72 
    73 		assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
    74 		assertEquals(options.getSql(), SQL_1);
    75 		assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
    76 	}
    77 
    78 	@Test
    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);
    82 		options.validate();
    83 
    84 		assertEquals(options.getSql(), SQL_1);
    85 		assertEquals(options.getMode(), CLIOptions.MODE.PREPARE_BATCH);
    86 	}
    87 
    88 	@Test
    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);
    92 		options.validate();
    93 
    94 		assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
    95 		assertEquals(options.getMode(), CLIOptions.MODE.EXECUTE_BATCH);
    96 	}
    97 }