public async Task ShutdownActionInvokedWithCancellationToken()
{
// Arrange
Mock<IAsynchronousDelay> delay = new Mock<IAsynchronousDelay>();
bool shutdownActionInvoked = false;
AsynchronousIntervalTimer timer = new AsynchronousIntervalTimer(delay.Object, TimeSpan.FromMilliseconds(PretendDelayInMilliseconds), false);
CancellationTokenSource source = new CancellationTokenSource();
// Act
await timer.ExecuteAsync(ct => Task.FromResult(false), source.Token, () => shutdownActionInvoked = true);
// Assert
Assert.IsTrue(shutdownActionInvoked);
source.Dispose();
}