Example #1
0
        public void Run_TryThrowsBehaviorReturnsRethrow_ExceptionIsRethrown()
        {
            // Arrange
            var retry = new RetryImpl(() =>
            {
                Throws();
            });

            retry.OnException(new RethrowAllExceptionBehavior());

            // Act
            retry.Run();

            // Assert
            // Expected exception
        }
Example #2
0
        public void Run_TryThrowsBehaviorReturnsAbort_ShouldStopRetrying()
        {
            // Arrange
            var tryCount = 0;
            var mockedAbortExceptionBehavior = new Mock <IExceptionBehavior>();

            mockedAbortExceptionBehavior.Setup(behavior => behavior.OnException(It.IsAny <Exception>()))
            .Returns(AfterExceptionBehavior.Abort);

            var retry = new RetryImpl((() =>
            {
                tryCount += 1;
                Throws();
            }));

            retry.OnException(mockedAbortExceptionBehavior.Object);

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

            // Assert
            Assert.AreEqual(CompletionState.Aborted, result);
            Assert.AreEqual(1, tryCount);
        }