public async Task Start_should_run_the_action_only_once_when_the_delay_is_infinite() { int count = 0; await AsyncBackgroundTask.Start( ct => { count++; return(Task.FromResult(true)); }, Timeout.InfiniteTimeSpan, CancellationToken.None); count.Should().Be(1); }
public async Task Start_should_run_the_action_on_the_specified_interval() { var cancellationTokenSource = new CancellationTokenSource(); int count = 0; await AsyncBackgroundTask.Start( ct => { count++; if (count == 5) { cancellationTokenSource.Cancel(); } return(Task.FromResult(true)); }, TimeSpan.FromMilliseconds(5), cancellationTokenSource.Token); count.Should().Be(5); }
public void Start_should_throw_ArgumentNullException_when_action_is_null() { Action act = () => AsyncBackgroundTask.Start(null, Timeout.InfiniteTimeSpan, CancellationToken.None).Wait(); act.ShouldThrow <ArgumentNullException>(); }