コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
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));
        }