public void TestTryUntilWithTryInterval() { var times = 5; var generator = new Generator(times); bool result = false; Expect(RetryHelperTest.CountTime(() => result = _target.Try(() => generator.Next()).WithTryInterval(RetryHelperTest.Interval * 2).Until(t => t)), EqualTo(RetryHelperTest.Interval * 2 * times).Within(RetryHelperTest.Tolerance)); Expect(result, True); }
public void TestTryUntilSuccessFirstTime() { var times = 0; var generator = new Generator(times); bool result = false; Expect(RetryHelperTest.CountTime(() => result = _target.Try(() => generator.Next()).Until(t => t)), EqualTo(RetryHelperTest.Interval * times).Within(RetryHelperTest.Tolerance)); Expect(generator.TriedTimes, EqualTo(times + 1)); Expect(result, True); }
public void TestTryUntilNoExceptionOfTypeAfterFiveTimes() { var times = 10; var generator = new Generator(times, true); bool result = false; Expect(RetryHelperTest.CountTime(() => result = _target.Try(() => generator.Next()).UntilNoException <ApplicationException>()), EqualTo(RetryHelperTest.Interval * times).Within(RetryHelperTest.Tolerance)); Expect(generator.TriedTimes, EqualTo(times + 1)); Expect(result, True); }
public void TestTryUntilWithMaxTryCountExceeded() { var times = 5; var generator = new Generator(times); bool result = false; Expect(RetryHelperTest.CountTime(() => Expect(() => result = _target.Try(() => generator.Next()).WithMaxTryCount(times).Until(t => t), Throws.TypeOf <TimeoutException>())), EqualTo(RetryHelperTest.Interval * (times - 1)).Within(RetryHelperTest.Tolerance)); Expect(result, False); }