public async Task Await_ShouldThrowIfCanceled() { // Arrange var op = new AsyncCompletionSource(); var actualException = default(Exception); var task = Task.Run(() => { Thread.Sleep(10); op.SetCanceled(); }); // Act try { await op; } catch (Exception e) { actualException = e; } // Assert Assert.IsType <OperationCanceledException>(actualException); AssertCanceled(op); }
public void SetCanceled_ThrowsIfOperationIsCompleted(AsyncOperationStatus status) { // Arrange var op = new AsyncCompletionSource(status); // Act/Assert Assert.Throws <InvalidOperationException>(() => op.SetCanceled()); Assert.True(op.CompletedSynchronously); }
public void TryAddCompletionCallback_FailsIfOperationIsCompleted() { // Arrange var op = new AsyncCompletionSource(); op.SetCanceled(); // Act var result = op.TryAddCompletionCallback(_ => { }, null); // Assert Assert.False(result); }
public void ToObservable_OnCompletedIsCalledOnCancellation() { // Arrange var op = new AsyncCompletionSource <int>(); var observer = new Observer <int>(); var observable = op.Subscribe(observer); // Act op.SetCanceled(); // Assert Assert.Equal(1, observer.OnErrorCount); }