public void TrySetCompleted_ThrowsIfOperationIsDisposed() { // Arrange var op = new AsyncCompletionSource(AsyncOperationStatus.Canceled); op.Dispose(); // Act/Assert Assert.Throws <ObjectDisposedException>(() => op.TrySetCompleted()); }
public void TrySetCompleted_SetsStatusToRanToCompletion(AsyncOperationStatus status) { // Arrange var op = new AsyncCompletionSource(status); // Act var result = op.TrySetCompleted(); // Assert Assert.True(op.IsCompletedSuccessfully); Assert.True(result); }
public void TrySetCompleted_FailsIfOperationIsCompleted() { // Arrange var op = new AsyncCompletionSource(AsyncOperationStatus.Canceled); // Act var result = op.TrySetCompleted(); // Assert Assert.False(result); Assert.True(op.CompletedSynchronously); Assert.True(op.IsCanceled); }
public void TrySetCompleted_RaisesCompletionCallbacks() { // Arrange var asyncCallbackCalled1 = false; var asyncCallbackCalled2 = false; var op = new AsyncCompletionSource(asyncResult => asyncCallbackCalled1 = true, null); op.AddCompletionCallback(asyncOp => asyncCallbackCalled2 = true, null); // Act op.TrySetCompleted(); // Assert Assert.True(asyncCallbackCalled1); Assert.True(asyncCallbackCalled2); }