Example #1
0
        public void CancelWhenCanceledTestAsync()
        {
            var tcs = new TaskCompletionSource <int>();

            using var cts = new CancellationTokenSource();
            cts.Cancel();
            cts.IsCancellationRequested.ShouldBe(true);

            Should.Throw <TaskCanceledException>(async() => await tcs.CancelWhen(cts.Token));
        }
Example #2
0
        public async Task CancelWhenWithResultImmediateTestAsync()
        {
            var tcs = new TaskCompletionSource <int>();

            using var cts = new CancellationTokenSource();
            tcs.SetResult(10);

            var result = await tcs.CancelWhen(cts.Token);

            result.ShouldBe(10);
        }
Example #3
0
        public void CancelWhenTaskNoneTestAsync()
        {
            var tcs = new TaskCompletionSource <int>();

            using var cts = new CancellationTokenSource();

            _ = Task.Run(async() => {
                await Task.Delay(2, CancellationToken.None);
                tcs.SetCanceled();
            });

            Should.Throw <TaskCanceledException>(async() => await tcs.CancelWhen(CancellationToken.None, Timeout.Infinite));
        }
Example #4
0
        public void CancelWhenExceptionTestAsync()
        {
            var tcs = new TaskCompletionSource <int>();

            using var cts = new CancellationTokenSource();

            _ = Task.Run(async() => {
                await Task.Delay(2, CancellationToken.None);
                tcs.SetException(new ArgumentException());
            });

            Should.Throw <ArgumentException>(async() => await tcs.CancelWhen(cts.Token));
        }
Example #5
0
        public async Task CancelWhenWithResultTestAsync()
        {
            var tcs = new TaskCompletionSource <int>();

            using var cts = new CancellationTokenSource();

            _ = Task.Run(async() => {
                await Task.Delay(1, CancellationToken.None);
                tcs.SetResult(10);
            });

            var result = await tcs.CancelWhen(cts.Token);

            result.ShouldBe(10);
        }
Example #6
0
 internal Task WaitForLockAsync() => _lockGrantedTcs.CancelWhen(CancelToken);
Example #7
0
        public void CancelWhenTimeoutTestAsync()
        {
            var tcs = new TaskCompletionSource <int>();

            Should.Throw <TimeoutException>(async() => await tcs.CancelWhen(2));
        }