public void RunAsyncWithTokenThrowsWhenRetryCountReached() { var next = new FaultyTaskRunner(new Exception("Message"), 1); var sut = SutFactory(next, 0, TimeSpan.Zero); Assert.Throws <AggregateException>(async() => await sut.RunAsync(CancellationToken.None)); Assert.That(next.RunCount, Is.EqualTo(1)); }
public async Task RunAsyncWithTokenRetriesWhenNextRunnerFails() { var next = new FaultyTaskRunner(new Exception("Message"), 1); var sut = SutFactory(next, 2, TimeSpan.Zero); await sut.RunAsync(CancellationToken.None); Assert.That(next.RunCount, Is.EqualTo(2)); }
public void RunAsyncWithCancelledTokenThrowsWhenRetryCountReached() { var next = new FaultyTaskRunner(new Exception("Message"), 1); var sut = SutFactory(next, 0, TimeSpan.Zero); var source = new CancellationTokenSource(); source.Cancel(); Assert.Throws <TaskCanceledException>(async() => await sut.RunAsync(source.Token)); Assert.That(next.RunCount, Is.EqualTo(1)); }
public void RunAsyncWithCancelledTokenWhenNextFailsHasExpectedResult() { var callCount = 0; var logger = new Action <Exception>(_ => callCount++); var next = new FaultyTaskRunner(new Exception("Message")); var sut = SutFactory(next, logger); var source = new CancellationTokenSource(); source.Cancel(); Assert.Throws <OperationCanceledException>(() => sut.RunAsync(source.Token).Wait(source.Token)); Assert.That(callCount, Is.EqualTo(0)); }
public void RunAsyncWithoutTokenWhenNextFailsHasExpectedResult() { var callCount = 0; var exception = new Exception("Message"); var logger = new Action <Exception>(_ => { if (ReferenceEquals(((AggregateException)_).Flatten().InnerException, exception)) { callCount++; } }); var next = new FaultyTaskRunner(exception); var sut = SutFactory(next, logger); Assert.Throws <AggregateException>(async() => await sut.RunAsync()); Assert.That(callCount, Is.EqualTo(1)); }