public void Progress_WebTaskFinished_ProgressesSavedInResult() { SetSynchronousSchedulerForTpl(); int progressesCount = new Random().Next(0, 100); Guid webTaskId = _runner.RunWebTask(context => { for (int i = 1; i <= progressesCount; i++) { context.ReportProgress(new WebTaskProgress() { Current = i, Total = progressesCount, Message = "Progress " + i }); } return(new TestWebTaskResult { Foo = "Test" }); }); WebTaskStatus webTaskStatus = _runner.GetWebTaskStatus(webTaskId); Assert.AreEqual(webTaskStatus.State, WebTaskState.Finished); Assert.IsNotNull(webTaskStatus.Progresses); Assert.AreEqual(progressesCount, webTaskStatus.Progresses.Length); for (int i = 0; i < progressesCount; i++) { WebTaskProgress progressUnderTest = webTaskStatus.Progresses[i]; Assert.AreEqual(progressesCount, progressUnderTest.Total); Assert.AreEqual(i + 1, progressUnderTest.Current); Assert.AreEqual("Progress " + (i + 1), progressUnderTest.Message); } }
public void ReportProgress(WebTaskProgress progress) { _webTask.Progresses.Add(progress); }