public void TrySetCanceled_ThrowsIfOperationIsDisposed() { // Arrange var op = new AsyncCompletionSource(AsyncOperationStatus.RanToCompletion); op.Dispose(); // Act/Assert Assert.Throws <ObjectDisposedException>(() => op.TrySetCanceled()); }
public void TrySetCanceled_SetsStatusToCanceled(AsyncOperationStatus status) { // Arrange var op = new AsyncCompletionSource(status); // Act var result = op.TrySetCanceled(); // Assert Assert.True(op.IsCanceled); Assert.True(result); }
public void TrySetCanceled_FailsIfOperationIsCompleted() { // Arrange var op = new AsyncCompletionSource(AsyncOperationStatus.RanToCompletion); // Act var result = op.TrySetCanceled(); // Assert Assert.False(result); Assert.True(op.CompletedSynchronously); Assert.True(op.IsCompletedSuccessfully); }
public void TrySetCanceled_RaisesCompletionCallbacks() { // Arrange var asyncCallbackCalled1 = false; var asyncCallbackCalled2 = false; var op = new AsyncCompletionSource(asyncResult => asyncCallbackCalled1 = true, null); op.AddCompletionCallback(asyncOp => asyncCallbackCalled2 = true, null); // Act op.TrySetCanceled(); // Assert Assert.True(asyncCallbackCalled1); Assert.True(asyncCallbackCalled2); }