public void Sync_Cancelled_ResultsHaveCancelledEqualsTrue() { _model = new SyncControlModel(_project, SyncUIFeatures.Minimal, null); _model.SyncOptions.RepositorySourcesToTry.Add(RepositoryAddress.Create("languageforge", "http://hg-public.languagedepot.org/dummy")); var progress = new ConsoleProgress(); _model.AddMessagesDisplay(progress); SyncResults results = null; _model.SynchronizeOver += new EventHandler((sender, e) => results = (sender as SyncResults)); _model.Sync(true); Thread.Sleep(100); _model.Cancel(); var start = DateTime.Now; while (results == null) { Thread.Sleep(100); Application.DoEvents(); //else the background worker may starve if ((DateTime.Now.Subtract(start).Minutes > 0)) { Assert.Fail("Gave up waiting."); } } Assert.IsFalse(results.Succeeded); Assert.IsTrue(results.Cancelled); Assert.IsNull(results.ErrorEncountered); }
public void Sync_Cancelled_ResultsHaveCancelledEqualsTrue() { _model = new SyncControlModel(_project, SyncUIFeatures.Minimal, null); _model.SyncOptions.RepositorySourcesToTry.Add(RepositoryAddress.Create("languageforge", "https://hg-public.languageforge.org/dummy")); var progress = new ConsoleProgress(); _model.AddMessagesDisplay(progress); SyncResults results = null; _model.SynchronizeOver += (sender, e) => results = sender as SyncResults; _model.Sync(true); Thread.Sleep(100); _model.Cancel(); // NOTE: we can't use AutoResetEvent with Sync() - for some reason this doesn't work WaitForSyncToFinish(ref results); Assert.That(results.Succeeded, Is.False); Assert.That(results.Cancelled, Is.True); Assert.That(results.ErrorEncountered, Is.Null); }