Esempio n. 1
0
        public async Task WrapDelegateCancellationToken_WhenCommandIsUncanceled_IsNotCanceled()
        {
            var command          = new CancelCommand();
            var ctTcs            = new TaskCompletionSource <CancellationToken>();
            var continueDelegate = new TaskCompletionSource <object>();
            var __ = command.WrapDelegate(async(_, token) =>
            {
                ctTcs.SetResult(token);
                await continueDelegate.Task;
            })(null);

            Assert.Equal(command.CancellationToken, await ctTcs.Task);
            Assert.False(command.CancellationToken.IsCancellationRequested);
            Assert.False(command.IsCancellationRequested);

            continueDelegate.SetResult(null);

            Assert.True(command.CancellationToken.IsCancellationRequested);
            Assert.True(command.IsCancellationRequested);
        }