public void TrySetResult_ThrowsIfOperationIsDisposed() { // Arrange var op = new AsyncCompletionSource <int>(AsyncOperationStatus.Canceled); op.Dispose(); // Act/Assert Assert.Throws <ObjectDisposedException>(() => op.TrySetResult(15)); }
public void TrySetResult_FailsIfOperationIsCompleted() { // Arrange var op = new AsyncCompletionSource <int>(AsyncOperationStatus.Canceled); // Act var result = op.TrySetResult(10); // Assert Assert.False(result); Assert.True(op.CompletedSynchronously); Assert.True(op.IsCanceled); }
public void TrySetResult_SetsStatusToRanToCompletion(AsyncOperationStatus status) { // Arrange var resultValue = new object(); var op = new AsyncCompletionSource <object>(status); // Act var result = op.TrySetResult(resultValue); // Assert Assert.True(op.IsCompletedSuccessfully); Assert.Equal(resultValue, op.Result); Assert.True(result); }
public void TrySetResult_RaisesCompletionCallbacks() { // Arrange var asyncCallbackCalled1 = false; var asyncCallbackCalled2 = false; var op = new AsyncCompletionSource <int>(asyncResult => asyncCallbackCalled1 = true, null); op.AddCompletionCallback(asyncOp => asyncCallbackCalled2 = true, null); // Act op.TrySetResult(10); // Assert Assert.True(asyncCallbackCalled1); Assert.True(asyncCallbackCalled2); }