1616import java .io .InputStream ;
1717import java .sql .Connection ;
1818import java .sql .ResultSet ;
19+ import java .sql .ResultSetMetaData ;
1920import java .sql .Statement ;
2021import java .util .ArrayList ;
2122import java .util .Arrays ;
2526import java .util .function .Function ;
2627import java .util .stream .Collectors ;
2728
29+ import static org .testng .Assert .fail ;
30+
2831@ Test (groups = {"integration" })
2932public class SQLTests extends JdbcIntegrationTest {
3033
@@ -76,9 +79,12 @@ public static Object[][] testSQLQueryWithResultSetDP() throws Exception {
7679 testCase .setChecks (DEFAULT_CHECKS );
7780 }
7881 Map <String , TestDataset > testDatasetMap = new HashMap <>();
79- for (Map .Entry <String , TestDataset > entry : datasetMap .entrySet ()) {
80- String table = testCase .getDatasets ().get (entry .getKey ());
81- testDatasetMap .put (table , entry .getValue ());
82+ for (Map .Entry <String , String > entry : testCase .getTables ().entrySet ()) {
83+ TestDataset testDataset = datasetMap .get (entry .getValue ());
84+ if (testDataset == null ) {
85+ fail ("Dataset " + entry .getValue () + " not found" );
86+ }
87+ testDatasetMap .put (entry .getKey (), testDataset );
8288 }
8389 testData [i ] = new Object []{testDatasetMap , testCase };
8490 }
@@ -298,7 +304,7 @@ private static Integer getIntegerProperty(Object propertyOrValue, Map<String, Te
298304 if (property instanceof Number ) {
299305 return ((Number ) property ).intValue ();
300306 } else if (property instanceof String ) {
301- return Integer .parseInt (property . toString () );
307+ return Integer .parseInt (( String ) property );
302308 }
303309 throw new IllegalArgumentException ("Property " + property + " is not a number" );
304310 }
@@ -309,9 +315,7 @@ private static Object getArrayProperty(Object propertyOrValue, Map<String, TestD
309315 return null ;
310316
311317 }
312- if (property instanceof String ) {
313- return property .toString ().split ("\\ ." );
314- } else if (property instanceof List <?>) {
318+ if (property instanceof List <?>) {
315319 return ((List <?>) property ).toArray ();
316320 } else if (property .getClass ().isArray ()) {
317321 return property ;
@@ -331,10 +335,11 @@ public void check(ResultSet rs, TestResultCheckModel check, Map<String, TestData
331335 public static final class CheckResultSetColumnNames implements ResultSetCheck {
332336 @ Override
333337 public void check (ResultSet rs , TestResultCheckModel check , Map <String , TestDataset > tables ) throws Exception {
338+ ResultSetMetaData metaData = rs .getMetaData ();
334339 Object [] expected = (Object []) getArrayProperty (check .getExpected (), tables );
335- Object [] actual = new String [expected . length ];
336- for (int i = 0 ; i < expected . length ; i ++) {
337- actual [i ] = rs . getMetaData () .getColumnName (i + 1 );
340+ Object [] actual = new String [metaData . getColumnCount () ];
341+ for (int i = 0 ; i < metaData . getColumnCount () ; i ++) {
342+ actual [i ] = metaData .getColumnName (i + 1 );
338343 }
339344 Assert .assertEquals (actual , expected , "Column names do not match" );
340345 }
0 commit comments