public void Run_TryThrowsBehaviorReturnsRethrow_ExceptionIsRethrown() { // Arrange var retry = new RetryImpl(() => { Throws(); }); retry.OnException(new RethrowAllExceptionBehavior()); // Act retry.Run(); // Assert // Expected exception }
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); }