public void ObserveTask_Faulted_FaultsBlock() { Test.Async(async () => { var block = new BufferBlock<int>(); var dataflowProgress = new DataflowProgress<int>(block); IProgress<int> progress = dataflowProgress; var task = TaskShim.Run(() => { throw new NotImplementedException(); }); dataflowProgress.ObserveTaskForCompletion(task); await AssertEx.ThrowsExceptionAsync<NotImplementedException>(block.Completion, allowDerivedTypes: false); }); }
public void ObserveTask_Faulted_FaultsBlock() { Test.Async(async() => { var block = new BufferBlock <int>(); var dataflowProgress = new DataflowProgress <int>(block); IProgress <int> progress = dataflowProgress; var task = TaskShim.Run(() => { throw new NotImplementedException(); }); dataflowProgress.ObserveTaskForCompletion(task); await AssertEx.ThrowsExceptionAsync <NotImplementedException>(block.Completion, allowDerivedTypes: false); }); }
public void ObserveTask_Completed_CompletesBlock() { Test.Async(async () => { var block = new BufferBlock<int>(); var dataflowProgress = new DataflowProgress<int>(block); IProgress<int> progress = dataflowProgress; var task = TaskShim.Run(() => { progress.Report(13); }); dataflowProgress.ObserveTaskForCompletion(task); var report1 = block.Receive(); Assert.AreEqual(13, report1); await block.Completion; }); }
public void ProgressReports_AreSentToBlock() { Test.Async(async () => { var block = new BufferBlock<int>(); IProgress<int> progress = new DataflowProgress<int>(block); await TaskShim.Run(() => { progress.Report(13); progress.Report(17); }); var report1 = block.Receive(); var report2 = block.Receive(); Assert.AreEqual(13, report1); Assert.AreEqual(17, report2); }); }
public void ObserveTask_Completed_CompletesBlock() { Test.Async(async() => { var block = new BufferBlock <int>(); var dataflowProgress = new DataflowProgress <int>(block); IProgress <int> progress = dataflowProgress; var task = TaskShim.Run(() => { progress.Report(13); }); dataflowProgress.ObserveTaskForCompletion(task); var report1 = block.Receive(); Assert.AreEqual(13, report1); await block.Completion; }); }
public void ProgressReports_AreSentToBlock() { Test.Async(async() => { var block = new BufferBlock <int>(); IProgress <int> progress = new DataflowProgress <int>(block); await TaskShim.Run(() => { progress.Report(13); progress.Report(17); }); var report1 = block.Receive(); var report2 = block.Receive(); Assert.AreEqual(13, report1); Assert.AreEqual(17, report2); }); }