public void OperationCanceledExceptionWithoutCancellationTokenTest() { var tcs = new TaskCompletionSource <object>(); var task = tcs.Task; tcs.SetExceptionOrCanceled(new OperationCanceledException()); Assert.IsTrue(task.IsCanceled); Assert.IsFalse(task.IsFaulted); }
public void OrdinaryExceptionTest() { var tcs = new TaskCompletionSource <object>(); var task = tcs.Task; tcs.SetExceptionOrCanceled(new Exception()); Assert.IsTrue(task.IsFaulted); Assert.IsFalse(task.IsCanceled); }
public void CompletedTcsSetExceptionOrCanceledTest() { var tcs = new TaskCompletionSource <object>(); tcs.SetResult(null); Assert.ThrowsException <InvalidOperationException>(() => { tcs.SetExceptionOrCanceled(new Exception()); }); }
public async Task OperationCanceledExceptionWithCancellationTokenTest() { var cancellationTokenSource = new CancellationTokenSource(); cancellationTokenSource.Cancel(); var cancellationToken = cancellationTokenSource.Token; var tcs = new TaskCompletionSource <object>(); var task = tcs.Task; tcs.SetExceptionOrCanceled(new OperationCanceledException(cancellationToken)); Assert.IsTrue(task.IsCanceled); Assert.IsFalse(task.IsFaulted); try { await task; } catch (OperationCanceledException exc) { Assert.AreEqual(cancellationToken, exc.CancellationToken); } }