public async Task AutoRemoveTest2() { var manager = new Services.ProgressManager(); var sampleProgress = manager.RegisterProgress(null); sampleProgress.Report(new ProgressReport { State = ProgressStates.Finished }); await Task.Delay(1000); Assert.IsTrue(manager.Progresses.Any()); await Task.Delay(2500); Assert.IsFalse(manager.Progresses.Any()); }
public async Task ChangesPropagandation() { var manager = new Services.ProgressManager(); var sampleProgress = manager.RegisterProgress(null); //Register the Progress sampleProgress.Report(new ProgressReport { State = ProgressStates.Running, Title = "Title", Description = "Description", Progress = 0.2 }); while (!manager.Progresses.Any()) { await Task.Delay(200); } var prg = manager.Progresses.First(); sampleProgress.Report(new ProgressReport { State = ProgressStates.Intermediate, Title = "Title", Description = "Description", Progress = 0.2 }); sampleProgress.Report(new ProgressReport { State = ProgressStates.Intermediate, Title = "Title changed", Description = "Description", Progress = 0.2 }); sampleProgress.Report(new ProgressReport { State = ProgressStates.Intermediate, Title = "Title changed", Description = "Description 2", Progress = 0.2 }); sampleProgress.Report(new ProgressReport { State = ProgressStates.Intermediate, Title = "Title changed", Description = "Description 2", Progress = 0.4 }); //Give some time to propangate the changes await Task.Delay(500); Assert.AreEqual("Title changed", prg.Title); Assert.AreEqual("Description 2", prg.Description); Assert.AreEqual(ProgressStates.Intermediate, prg.State); Assert.AreEqual(0.4, prg.Progress); }