java/sql-dk/test/info/globalcode/sql/dk/CLIParserTest.java
branchv_0
changeset 68 574cd7fbb5b2
parent 52 e2ba2af0ef40
child 69 0befec5034c2
equal deleted inserted replaced
67:10c9b9e54622 68:574cd7fbb5b2
    17  */
    17  */
    18 package info.globalcode.sql.dk;
    18 package info.globalcode.sql.dk;
    19 
    19 
    20 import info.globalcode.sql.dk.CLIParser.Tokens;
    20 import info.globalcode.sql.dk.CLIParser.Tokens;
    21 import static info.globalcode.sql.dk.CLIParser.TYPE_NAME_SEPARATOR;
    21 import static info.globalcode.sql.dk.CLIParser.TYPE_NAME_SEPARATOR;
    22 import java.sql.Types;
       
    23 import java.util.Collection;
    22 import java.util.Collection;
    24 import static org.testng.Assert.*;
    23 import static org.testng.Assert.*;
    25 import org.testng.annotations.BeforeMethod;
    24 import org.testng.annotations.BeforeMethod;
    26 import org.testng.annotations.Test;
    25 import org.testng.annotations.Test;
    27 
    26 
    85 	@Test
    84 	@Test
    86 	public void testParseOptions_QueryNow_Numbered_withTypes() throws InvalidOptionsException, CLIParserException {
    85 	public void testParseOptions_QueryNow_Numbered_withTypes() throws InvalidOptionsException, CLIParserException {
    87 		String[] args = new String[]{
    86 		String[] args = new String[]{
    88 			Tokens.DB, DATABASE_NAME_1,
    87 			Tokens.DB, DATABASE_NAME_1,
    89 			Tokens.SQL, SQL_1,
    88 			Tokens.SQL, SQL_1,
    90 			Tokens.TYPES, " int,string, boolean",
    89 			Tokens.TYPES, " INTEGER,VARCHAR, BOOLEAN",
    91 			Tokens.DATA, DATA_1, DATA_2, DATA_3};
    90 			Tokens.DATA, DATA_1, DATA_2, DATA_3};
    92 		CLIOptions options = parser.parseOptions(args);
    91 		CLIOptions options = parser.parseOptions(args);
    93 		options.validate();
    92 		options.validate();
    94 
    93 
    95 		assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
    94 		assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
    97 		assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
    96 		assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
    98 		assertEquals(options.getNumberedParameters().size(), 3);
    97 		assertEquals(options.getNumberedParameters().size(), 3);
    99 		assertEquals(options.getNumberedParameters().get(0).getValue(), DATA_1);
    98 		assertEquals(options.getNumberedParameters().get(0).getValue(), DATA_1);
   100 		assertEquals(options.getNumberedParameters().get(1).getValue(), DATA_2);
    99 		assertEquals(options.getNumberedParameters().get(1).getValue(), DATA_2);
   101 		assertEquals(options.getNumberedParameters().get(2).getValue(), DATA_3);
   100 		assertEquals(options.getNumberedParameters().get(2).getValue(), DATA_3);
   102 		assertEquals(options.getNumberedParameters().get(0).getType(), Types.INTEGER);
   101 		assertEquals(options.getNumberedParameters().get(0).getType(), SQLType.INTEGER);
   103 		assertEquals(options.getNumberedParameters().get(1).getType(), Types.VARCHAR);
   102 		assertEquals(options.getNumberedParameters().get(1).getType(), SQLType.VARCHAR);
   104 		assertEquals(options.getNumberedParameters().get(2).getType(), Types.BOOLEAN);
   103 		assertEquals(options.getNumberedParameters().get(2).getType(), SQLType.BOOLEAN);
   105 	}
   104 	}
   106 
   105 
   107 	@Test
   106 	@Test
   108 	public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException {
   107 	public void testParseOptions_QueryNow_Named() throws InvalidOptionsException, CLIParserException {
   109 		String[] args = new String[]{
   108 		String[] args = new String[]{
   126 	public void testParseOptions_QueryNow_Named_withTypes() throws InvalidOptionsException, CLIParserException {
   125 	public void testParseOptions_QueryNow_Named_withTypes() throws InvalidOptionsException, CLIParserException {
   127 		String[] args = new String[]{
   126 		String[] args = new String[]{
   128 			Tokens.DB, DATABASE_NAME_1,
   127 			Tokens.DB, DATABASE_NAME_1,
   129 			Tokens.SQL, SQL_1,
   128 			Tokens.SQL, SQL_1,
   130 			Tokens.NAME_PREFIX, "$",
   129 			Tokens.NAME_PREFIX, "$",
   131 			Tokens.TYPES, " " + NAME_1 + TYPE_NAME_SEPARATOR + "int" + "," + NAME_3 + TYPE_NAME_SEPARATOR + "boolean",
   130 			Tokens.TYPES, " " + NAME_1 + TYPE_NAME_SEPARATOR + "INTEGER" + "," + NAME_3 + TYPE_NAME_SEPARATOR + "BOOLEAN",
   132 			Tokens.DATA_NAMED, NAME_1, DATA_1, NAME_2, DATA_2, NAME_3, DATA_3};
   131 			Tokens.DATA_NAMED, NAME_1, DATA_1, NAME_2, DATA_2, NAME_3, DATA_3};
   133 		CLIOptions options = parser.parseOptions(args);
   132 		CLIOptions options = parser.parseOptions(args);
   134 		options.validate();
   133 		options.validate();
   135 
   134 
   136 		assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
   135 		assertEquals(options.getDatabaseName(), DATABASE_NAME_1);
   137 		assertEquals(options.getSql(), SQL_1);
   136 		assertEquals(options.getSql(), SQL_1);
   138 		assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
   137 		assertEquals(options.getMode(), CLIOptions.MODE.QUERY_NOW);
   139 		assertEquals(options.getNamedParameters().size(), 3);
   138 		assertEquals(options.getNamedParameters().size(), 3);
   140 		assertNamedParameter(options.getNamedParameters(), NAME_1, DATA_1, Types.INTEGER);
   139 		assertNamedParameter(options.getNamedParameters(), NAME_1, DATA_1, SQLType.INTEGER);
   141 		assertNamedParameter(options.getNamedParameters(), NAME_2, DATA_2, Parameter.DEFAULT_TYPE);
   140 		assertNamedParameter(options.getNamedParameters(), NAME_2, DATA_2, Parameter.DEFAULT_TYPE);
   142 		assertNamedParameter(options.getNamedParameters(), NAME_3, DATA_3, Types.BOOLEAN);
   141 		assertNamedParameter(options.getNamedParameters(), NAME_3, DATA_3, SQLType.BOOLEAN);
   143 	}
   142 	}
   144 
   143 
   145 	private void assertNamedParameter(Collection<NamedParameter> params, String name, Object value, int type) {
   144 	private void assertNamedParameter(Collection<NamedParameter> params, String name, Object value, SQLType type) {
   146 		for (NamedParameter p : params) {
   145 		for (NamedParameter p : params) {
   147 			if (name.equals(p.getName())) {
   146 			if (name.equals(p.getName())) {
   148 				assertEquals(p.getValue(), value, "value does not match – name: " + name);
   147 				assertEquals(p.getValue(), value, "value does not match – name: " + name);
   149 				assertEquals(p.getType(), type, "value does not match – name: " + name);
   148 				assertEquals(p.getType(), type, "value does not match – name: " + name);
   150 				return;
   149 				return;