public void FromCanceled_ReturnsCanceledOperation_Generic() { // Act var op = AsyncResult.FromCanceled <int>(); // Assert AssertCanceled(op); Assert.True(op.CompletedSynchronously); }
public async Task ToTask_FailsWhenSourceIsCanceled() { // Arrange var op = AsyncResult.FromCanceled(); var task = op.ToTask(); // Act/Assert await Assert.ThrowsAsync <TaskCanceledException>(() => task); }
public async Task Unwrap_FailsIfOuterOperationFails() { // Arrange var actualException = default(Exception); var op1 = AsyncResult.FromCanceled <AsyncResult>(); var op = op1.Unwrap(); // Act try { await op; } catch (OperationCanceledException e) { actualException = e; } // Assert Assert.True(op.IsCanceled); Assert.NotNull(actualException); }
public async Task ContinueWth_ExecutesOnAntecedentCancellation(AsyncContinuationOptions options, bool expectedCalled) { // Arrange var op = AsyncResult.FromCanceled(); var continuationCalled = false; var continuationCanceled = false; var continuation = op.ContinueWith(o => continuationCalled = true, options); // Act try { await continuation; } catch (OperationCanceledException) { continuationCanceled = true; } // Assert Assert.Equal(expectedCalled, continuationCalled); Assert.Equal(!expectedCalled, continuationCanceled); }