示例#1
0
        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);
            }
        }
示例#2
0
 public void ReportProgress(WebTaskProgress progress)
 {
     _webTask.Progresses.Add(progress);
 }