Beispiel #1
0
        public void OrCancellationWorks()
        {
            var comp = Task.FromResult(true);

            Assert.Equal(comp, comp.OrCancellation(new CancellationToken(true)));
            Assert.Equal(comp, comp.OrCancellation(new CancellationToken(false)));
            var never = new TaskCompletionSource <int>().Task;

            Assert.True(never.OrCancellation(new CancellationToken(true)).IsCanceled);
            using (var cts = new CancellationTokenSource())
            {
                var task = never.OrCancellation(cts.Token);
                Assert.False(task.IsCanceled);
                cts.Cancel();
                Assert.True(task.IsCanceled);
            }
        }