Exemplo n.º 1
0
        public void MaximumNumberOfTries_ActionSucceedsThirdTime_TriedThreeTimes()
        {
            using (ShimsContext.Create())
            {
                // Arrange
                ShimThread.SleepInt32 = i => { };
                var callCount = 0;
                var retry     = new RetryImpl((() =>
                {
                    callCount += 1;
                    if (callCount == 3)
                    {
                        return; // success
                    }

                    Throws();
                }));

                // Act
                retry.MaximumNumberOfTries(5)
                .Run();

                // Assert
                Assert.AreEqual(3, callCount);
            }
        }
Exemplo n.º 2
0
        public void MaximumNumberOfTries_ActionKeepsFailing_SleptFourTimes()
        {
            // Arrange
            var retry = new RetryImpl(() => false, new RethrowAllExceptionBehavior(), doNotWaitHandler);

            // Act
            var result = retry.MaximumNumberOfTries(5)
                         .Run();

            // Assert
            Assert.AreEqual(4, doNotWaitHandler.SleepCount);
            Assert.AreEqual(CompletionState.Failed, result);
        }
Exemplo n.º 3
0
        public void MaximumNumberOfTries_ActionKeepsFailing_TriedFiveTimes()
        {
            // Arrange
            var callCount = 0;
            var retry     = new RetryImpl((() =>
            {
                callCount += 1;
                Throws();
            }));

            // Act
            var result = retry.MaximumNumberOfTries(5)
                         .Run();

            // Assert
            Assert.AreEqual(5, callCount);
            Assert.AreEqual(CompletionState.Failed, result);
        }
Exemplo n.º 4
0
        public void RunAsync_TryThrows_BehaviorOnExceptionIsCalled()
        {
            // Arrange
            var mockedExceptionBehavior = new Mock <IExceptionBehavior>();

            var retry = new RetryImpl(() =>
            {
                Throws();
            }, mockedExceptionBehavior.Object, doNotWaitHandler);

            retry.MaximumNumberOfTries(1);

            // Act
            retry.RunAsync().Wait();

            // Assert
            mockedExceptionBehavior.Verify(behavior => behavior.OnException(It.IsAny <Exception>()), Times.Once);
        }
Exemplo n.º 5
0
        public void MaximumNumberOfTries_ActionKeepsFailing_TriedFiveTimes()
        {
            using (ShimsContext.Create())
            {
                // Arrange
                ShimThread.SleepInt32 = i => { };
                var callCount = 0;
                var retry     = new RetryImpl((() =>
                {
                    callCount += 1;
                    Throws();
                }));

                // Act
                retry.MaximumNumberOfTries(5)
                .Run();

                // Assert
                Assert.AreEqual(5, callCount);
            }
        }
Exemplo n.º 6
0
        public void MaximumNumberOfTries_ActionSucceedsThirdTime_TriedThreeTimes()
        {
            // Arrange
            var callCount = 0;
            var retry     = new RetryImpl((() =>
            {
                callCount += 1;
                if (callCount == 3)
                {
                    return; // success
                }

                Throws();
            }));

            // Act
            var result = retry.MaximumNumberOfTries(5)
                         .Run();

            // Assert
            Assert.AreEqual(3, callCount);
            Assert.AreEqual(CompletionState.Success, result);
        }