public async Task TimeoutExceededAsyncWithDifferingTokenPosition()
        {
            // Test that CancellationTokens can be intercepted in any method
            // parameter position, not just the final position.
            await Assert.ThrowsAsync <TaskCanceledException>(() =>
                                                             TestMethods.AddTimeoutAsyncWithDifferingTokenPosition(
                                                                 new CancellationToken(),
                                                                 async providedToken =>
            {
                // A CancellationToken should have been provided by the Aspect
                Assert.NotNull(providedToken);

                await Task.Delay(TimeoutMillis * 2, providedToken !.Value);
            }));
        }