コード例 #1
0
        public void StatusWhileRunning()
        {
            using (var manager = new JobManager())
            {
                var did_run = false;
                manager.Initialize();
                var task = new BackgroundTask((token) =>
                {
                    did_run = true;
                    Utility.Threading.BlockUntil(() =>
                    {
                        return(token.IsCancellationRequested);
                    }, 500);
                });
                manager.RunBackgroundTask(task);

                var elapsed = Utility.Threading.BlockUntil(() => did_run, 500);
                Assert.True(elapsed < 500);
                Assert.True(did_run);

                var status = manager.GetStatus();

                Assert.NotNull(status);
                Assert.NotEmpty(status.RunningTasks);
                Assert.Equal(1, status.RunningTasks.Count);
                Assert.True(status.RunningTasks.Any(_ => _.Id.Equals(task.Id)));

                manager.CancelJob(task.Id);

                Assert.False(task.DidComplete);
                Assert.False(task.DidError);
                Assert.False(task.DidTimeout);
            }
        }
コード例 #2
0
        public void CancelJob()
        {
            using (var manager = new JobManager())
            {
                var did_run = false;
                manager.Initialize();
                var task = new BackgroundTask((token) =>
                {
                    did_run = true;
                    Utility.Threading.BlockUntil(() =>
                    {
                        return(token.IsCancellationRequested);
                    }, 500);
                });
                manager.RunBackgroundTask(task);

                //wait for the task to be kicked off ...
                var elapsed = Utility.Threading.BlockUntil(() => did_run, 500);
                Assert.True(elapsed < 500);
                Assert.True(did_run);

                Assert.True(manager.JobIsRunning(task.Id));

                manager.CancelJob(task.Id);

                Assert.False(task.DidComplete);
                Assert.False(task.DidError);
                Assert.False(task.DidTimeout);

                Assert.False(manager.JobIsRunning(task.Id));
            }
        }
コード例 #3
0
 public void CancelJobTest([PexAssumeUnderTest] JobManager target, Tile tile)
 {
     target.CancelJob(tile);
     // TODO: add assertions to method JobManagerTest.CancelJobTest(JobManager, Tile)
 }