Пример #1
0
        public void FromCanceled_ReturnsCanceledOperation_Generic()
        {
            // Act
            var op = AsyncResult.FromCanceled <int>();

            // Assert
            AssertCanceled(op);
            Assert.True(op.CompletedSynchronously);
        }
Пример #2
0
        public async Task ToTask_FailsWhenSourceIsCanceled()
        {
            // Arrange
            var op   = AsyncResult.FromCanceled();
            var task = op.ToTask();

            // Act/Assert
            await Assert.ThrowsAsync <TaskCanceledException>(() => task);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }