private IDataSet dbUnitDataSet(InputStream stream) { try { ReplacementDataSet dataSet = new ReplacementDataSet(new FlatXmlDataSet(stream)); dataSet.addReplacementObject("[null]", null); dataSet.addReplacementObject("[false]", Boolean.FALSE); dataSet.addReplacementObject("[true]", Boolean.TRUE); return dataSet; } catch (Exception e) { throw translateException("Could not read the dataset stream", e); } }
/** * @deprecated do not use DBUnit */ @Deprecated public void assertDbUnitTable(Class testClass, String filename, String table, String... columns) { IDatabaseConnection connection = dbUnitConnection(); try { IDataSet dataSet = connection.createDataSet(); String path = "/" + testClass.getName().replace('.', '/') + "/" + filename; IDataSet expectedDataSet = dbUnitDataSet(testClass.getResourceAsStream(path)); ITable filteredTable = DefaultColumnFilter.includedColumnsTable(dataSet.getTable(table), columns); ITable filteredExpectedTable = DefaultColumnFilter.includedColumnsTable(expectedDataSet.getTable(table), columns); Assertion.assertEquals(filteredExpectedTable, filteredTable); } catch (DatabaseUnitException e) { fail(e.getMessage()); } catch (SQLException e) { throw translateException("Error while checking results", e); } finally { closeQuietly(connection); } }
String dataSetFile = "testDataFile.xml"; IDataSet dataSet = new FlatXmlDataSetBuilder().build(new FileInputStream(dataSetFile)); ReplacementDataSet rDataSet = new ReplacementDataSet(dataSet); Set<String> keys = dataSetAdjustments.keySet(); rDataSet.addReplacementObject("[create_date]", DateUtils.addDays(new Date(), -2));
protected static void printResult(ITable resultTable) throws DataSetException { StringBuilder sb = new StringBuilder(); int columnCount = resultTable.getTableMetaData().getColumns().length; String[] columns = new String[columnCount]; for (int i = 0; i < columnCount; i++) { sb.append(resultTable.getTableMetaData().getColumns()[i].getColumnName()); sb.append("-"); sb.append(resultTable.getTableMetaData().getColumns()[i].getDataType()); sb.append("\t"); columns[i] = resultTable.getTableMetaData().getColumns()[i].getColumnName(); } sb.append("\n"); for (int i = 0; i < resultTable.getRowCount(); i++) { for (int j = 0; j < columns.length; j++) { sb.append(resultTable.getValue(i, columns[j])); sb.append("\t"); } sb.append("\n"); } System.out.println(sb.toString()); }
protected ITable executeQuery(IDatabaseConnection dbConn, String queryName, String sql, boolean needSort) throws Exception { // change join type to match current setting sql = changeJoinType(sql, joinType); ITable queryTable = dbConn.createQueryTable(resultTableName + queryName, sql); String[] columnNames = new String[queryTable.getTableMetaData().getColumns().length]; for (int i = 0; i < columnNames.length; i++) { columnNames[i] = queryTable.getTableMetaData().getColumns()[i].getColumnName(); } if (needSort) { queryTable = new SortedTable(queryTable, columnNames); } // printResult(queryTable); return queryTable; }
@Override public void assertEquals(ITable expectedSortedTable, ITable actualSortedTable, List<IColumnFilter> columnFilters) throws DatabaseUnitException { Column[] expectedColumns = expectedSortedTable.getTableMetaData().getColumns(); expectedSortedTable = new SortedTable(expectedSortedTable, expectedColumns); actualSortedTable = new SortedTable(actualSortedTable, expectedColumns); super.assertEquals(expectedSortedTable, actualSortedTable, columnFilters); }
final FlatXmlProducer flatXmlProducer = new FlatXmlProducer(new InputSource(inputStream)); final StreamingDataSet streamingDataSet = new StreamingDataSet(flatXmlProducer); final ReplacementDataSet replacementDataSet = new ReplacementDataSet(streamingDataSet); replacementDataSet.addReplacementObject("[NULL]", null);
public ITableMetaData getTableMetaData() { ITableMetaData meta = delegate.getTableMetaData(); try { return new DefaultTableMetaData(tableName, meta.getColumns(), meta.getPrimaryKeys()); } catch (DataSetException e) { throw new QtafException("Don't get the meta info from " + meta, e); } }
private IDataSet defineReplaceableExpressions(IDataSet dataSet) { final ReplacementDataSet replacementDataSet = new ReplacementDataSet(dataSet); replacementDataSet.addReplacementObject("[null]", null); replacementDataSet.addReplacementObject("[NULL]", null); return replacementDataSet; } }
DiffCollectingFailureHandler diffHandler = new DiffCollectingFailureHandler(); ITable filteredTable = DefaultColumnFilter.excludedColumnsTable(dataSet.getTable(table), excludedColumnNames); ITable filteredExpectedTable = DefaultColumnFilter.excludedColumnsTable(expectedDataSet.getTable(table), excludedColumnNames); Assertion.assertEquals(filteredExpectedTable, filteredTable, diffHandler);
private static ITable filterTable(ITable table, IColumnFilter filter) throws DataSetException { FilteredTableMetaData metaData = new FilteredTableMetaData(table.getTableMetaData(), filter); return new CompositeTable(metaData, table); } }
protected Set<String> getColumnsToIgnore(ITableMetaData expectedMetaData, ITableMetaData actualMetaData) throws DataSetException { Column[] notSpecifiedInExpected = Columns.getColumnDiff(expectedMetaData, actualMetaData).getActual(); Set<String> result = new LinkedHashSet<String>(); for (Column column : notSpecifiedInExpected) { result.add(column.getColumnName()); } return result; }
DefaultDataSet dataset = new DefaultDataSet(); while (resultSet.next()) { String tableName = resultSet.getString(3); dataset.addTable(new DefaultTable(tableName));
protected void verifyResultRowCount(String queryFolder) throws Exception { printInfo("---------- verify result count in folder: " + queryFolder); List<File> sqlFiles = getFilesFromFolder(new File(queryFolder), ".sql"); for (File sqlFile : sqlFiles) { String queryName = StringUtils.split(sqlFile.getName(), '.')[0]; String sql = getTextFromFile(sqlFile); File expectResultFile = new File(sqlFile.getParent(), sqlFile.getName() + ".expected"); int expectRowCount = Integer.parseInt(Files.readFirstLine(expectResultFile, Charset.defaultCharset())); // execute Kylin printInfo("Query Result from Kylin - " + queryName + " (" + queryFolder + ")"); IDatabaseConnection kylinConn = new DatabaseConnection(cubeConnection); ITable kylinTable = executeQuery(kylinConn, queryName, sql, false); // compare the result Assert.assertEquals(expectRowCount, kylinTable.getRowCount()); // Assertion.assertEquals(expectRowCount, kylinTable.getRowCount()); } }
private void prepareDbUnit(InputStream... dataSetStream) { IDatabaseConnection connection = null; try { IDataSet[] dataSets = new IDataSet[dataSetStream.length]; for (int i = 0; i < dataSetStream.length; i++) { dataSets[i] = dbUnitDataSet(dataSetStream[i]); } db.getDbUnitTester().setDataSet(new CompositeDataSet(dataSets)); connection = dbUnitConnection(); new InsertIdentityOperation(DatabaseOperation.INSERT).execute(connection, db.getDbUnitTester().getDataSet()); } catch (Exception e) { throw translateException("Could not setup DBUnit data", e); } finally { closeQuietly(connection); } }
public void executeDataset(String path) throws IOException, SQLException { InputStream inputStream = getClass().getResourceAsStream(path); ReplacementDataSet replacementDataSet; try { replacementDataSet = new ReplacementDataSet(new FlatXmlDataSet(new InputStreamReader(inputStream), false, true, false)); inputStream.close(); } catch (DataSetException e) { throw new IOException(e); } finally { IOUtils.closeQuietly(inputStream); } replacementDataSet.addReplacementObject("[NULL]", null); try { DatabaseOperation.REFRESH.execute(dbUnitConnection, replacementDataSet); connection.commit(); } catch (DatabaseUnitException e) { throw new IOException(e); } }
protected ITable executeDynamicQuery(IDatabaseConnection dbConn, String queryName, String sql, List<String> parameters, boolean needSort) throws Exception { // change join type to match current setting sql = changeJoinType(sql, joinType); PreparedStatement prepStat = dbConn.getConnection().prepareStatement(sql); for (int j = 1; j <= parameters.size(); ++j) { prepStat.setString(j, parameters.get(j - 1).trim()); } ITable queryTable = dbConn.createTable(resultTableName + queryName, prepStat); String[] columnNames = new String[queryTable.getTableMetaData().getColumns().length]; for (int i = 0; i < columnNames.length; i++) { columnNames[i] = queryTable.getTableMetaData().getColumns()[i].getColumnName(); } if (needSort) { queryTable = new SortedTable(queryTable, columnNames); } // printResult(queryTable); return queryTable; }
@Override public void assertEquals(ITable expectedSortedTable, ITable actualSortedTable, List<IColumnFilter> columnFilters) throws DatabaseUnitException { Column[] expectedColumns = expectedSortedTable.getTableMetaData().getColumns(); expectedSortedTable = new SortedTable(expectedSortedTable, expectedColumns); actualSortedTable = new SortedTable(actualSortedTable, expectedColumns); super.assertEquals(expectedSortedTable, actualSortedTable, columnFilters); }
protected void execAndCompQuery(String queryFolder, String[] exclusiveQuerys, boolean needSort) throws Exception { printInfo("---------- test folder: " + queryFolder); Set<String> exclusiveSet = buildExclusiveSet(exclusiveQuerys); List<File> sqlFiles = getFilesFromFolder(new File(queryFolder), ".sql"); for (File sqlFile : sqlFiles) { String queryName = StringUtils.split(sqlFile.getName(), '.')[0]; if (exclusiveSet.contains(queryName)) { continue; } String sql = getTextFromFile(sqlFile); // execute Kylin printInfo("Query Result from Kylin - " + queryName + " (" + queryFolder + ")"); IDatabaseConnection kylinConn = new DatabaseConnection(cubeConnection); ITable kylinTable = executeQuery(kylinConn, queryName, sql, needSort); // execute H2 printInfo("Query Result from H2 - " + queryName); H2Connection h2Conn = new H2Connection(h2Connection, null); h2Conn.getConfig().setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new TestH2DataTypeFactory()); ITable h2Table = executeQuery(h2Conn, queryName, sql, needSort); // compare the result Assertion.assertEquals(h2Table, kylinTable); compQueryCount++; if (kylinTable.getRowCount() == 0) { zeroResultQueries.add(sql); } } }
ReplacementDataSet replacementDataSet = new ReplacementDataSet( new FlatXmlDataSet(reader, false, true, false)); replacementDataSet.addReplacementObject("[NULL]", null); xmlDataSetToRun = replacementDataSet;