private void btnFetchData_Click(object sender, EventArgs e) { fetchDataResultedInNoErrors = true; var fetcher = new DiffDatabaseDataFetcher(_batchSizeToGet, _toInterrogate, _dataLoadRunID, _timeout); fetcher.FetchData(this); dgInserts.DataSource = fetcher.Inserts; if (fetcher.Updates_New == null || fetcher.Updates_Replaced == null) { diffDataTables1.Clear(); } else { diffDataTables1.PopulateWith(fetcher.Updates_New, fetcher.Updates_Replaced); } //if user is already viewing the updates we will need to re-highlight if (tabControl1.SelectedTab == tpViewUpdates) { diffDataTables1.HighlightDiffCells(); } //we didn't see any errors so probably everything was fine if (fetchDataResultedInNoErrors) { WideMessageBox.Show("Data Ready", "Data ready for you to view in the Inserts / Updates tabs", WideMessageBoxTheme.Help); } }
public void DiffDatabaseDataFetcherTest(DatabaseType dbType) { CreateTable(dbType); _table.CreatePrimaryKey(_table.DiscoverColumn("name")); GetImplementer().CreateTrigger(new ThrowImmediatelyCheckNotifier()); _table.Insert(new Dictionary <string, object> { { "name", "Franky" }, { "bubbles", 3 }, { "hic_validFrom", new DateTime(2001, 1, 2) }, { "hic_dataLoadRunID", 7 } }); Thread.Sleep(500); RunSQL("UPDATE {0} SET bubbles=1", _table.GetFullyQualifiedName()); Thread.Sleep(500); RunSQL("UPDATE {0} SET bubbles=2", _table.GetFullyQualifiedName()); Thread.Sleep(500); RunSQL("UPDATE {0} SET bubbles=3", _table.GetFullyQualifiedName()); Thread.Sleep(500); RunSQL("UPDATE {0} SET bubbles=4", _table.GetFullyQualifiedName()); Assert.AreEqual(1, _table.GetRowCount()); Assert.AreEqual(4, _archiveTable.GetRowCount()); TableInfo ti; ColumnInfo[] cols; Import(_table, out ti, out cols); DiffDatabaseDataFetcher fetcher = new DiffDatabaseDataFetcher(1, ti, 7, 100); fetcher.FetchData(new AcceptAllCheckNotifier()); Assert.AreEqual(4, fetcher.Updates_New.Rows[0]["bubbles"]); Assert.AreEqual(3, fetcher.Updates_Replaced.Rows[0]["bubbles"]); Assert.AreEqual(1, fetcher.Updates_New.Rows.Count); Assert.AreEqual(1, fetcher.Updates_Replaced.Rows.Count); }