protected override U2Pair RunProxiedDbDataAdapter(List <TestTable> randomDataSource, FakeProxiedDbDataAdapter adapter) { using (FakeDbCommandBuilder cmdBuilder = new FakeDbCommandBuilder(adapter)) { DataTable dataTable = new DataTable(); // `.Fill` returns the number of rows in the first table, not any subsequent tables. Yes, that's silly. Int32 rowsInFirstTable = adapter.Fill(dataTable); rowsInFirstTable.ShouldBe(40); // Dictionary <String, Int32> rowsModified = DataTableMethods.MutateDataTable(dataTable); // adapter.UpdateCommand = cmdBuilder.GetUpdateCommand(); adapter.UpdateCommand.NonQueryResultRowCountValue = (cmd) => DataTableMethods.GetUpdateStatementNonQueryResultRowCountValue(expectedTableName: "TODO", adapter, dataTable, cmd, rowsModified); DataRow[] rows = dataTable.Rows.Cast <DataRow>().ToArray(); Int32 updatedRows = adapter.Update2(rows); // updatedRows.ShouldBe( rowsModified ); return(rows, rowsModified, updatedRows); } }
protected override U1Pair RunProxiedDbDataAdapter(List <TestTable> randomDataSource, FakeProxiedDbDataAdapter adapter) { using (FakeDbCommandBuilder cmdBuilder = new FakeDbCommandBuilder(adapter)) { DataSet dataSet = new DataSet(); Int32 rowsInFirstTable = adapter.Fill(dataSet); rowsInFirstTable.ShouldBe(40); // Dictionary <String, Int32> rowsModified = DataTableMethods.MutateDataSet(dataSet); List <(String tableName, String command)> executedCommands = new List <(string tableName, string command)>(); // adapter.UpdateCommand = cmdBuilder.GetUpdateCommand(); adapter.UpdateCommand.NonQueryResultRowCountValue = (cmd) => DataTableMethods.GetUpdateStatementNonQueryResultRowCountValue(expectedTableName: "TODO", adapter, dataSet, cmd, rowsModified, executedCommands); Int32 updatedRows = adapter.Update1(dataSet); // updatedRows... in first table only? // updatedRows.ShouldBe( rowsModified ); return(dataSet, rowsModified, updatedRows); } }