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); }