Inheritance: ICancellable
        public void WithNonNullableCancellationTokenParameter_CancellationTokenIsEmpty_UsesTokenFromExecuteAsync()
        {
            const string expected = "quux";
            var instance = new Cancellable(expected);
            var proxy = CommandInterceptor.CreateProxy<ICancellable>(instance);

            proxy.CancellationTokenOnly(CancellationToken.None);

            Assert.NotNull(instance.ReceivedToken);
            Assert.False(instance.ReceivedToken.Value.IsCancellationRequested);
            Thread.Sleep(Cancellable.CancellationTestTimeoutMillis + 50);
            Assert.True(instance.ReceivedToken.Value.IsCancellationRequested);
        }
        public void WithNonNullableCancellationTokenParameter_NonEmptyCancellationToken_DoesntReplace()
        {
            const string expected = "quux";
            var instance = new Cancellable(expected);
            var proxy = CommandInterceptor.CreateProxy<ICancellable>(instance);

            var source = new CancellationTokenSource(TimeSpan.FromMilliseconds(10000)); // Not 500, which is the value in the [Command] attribute.
            var token = source.Token;

            var result = proxy.CancellationTokenOnly(token);

            Assert.Equal(token, instance.ReceivedToken);
            Assert.Equal(expected, result);
        }