public void GetNextDelayTest() { var strategy = new ExponentialRetryStrategy(1000); var delay01 = strategy.GetNextDelay(); Assert.AreEqual(0, delay01); var delay02 = strategy.GetNextDelay(); Assert.AreEqual(1000, delay02); var delay03 = strategy.GetNextDelay(); Assert.AreEqual(2000, delay03); var delay04 = strategy.GetNextDelay(); Assert.AreEqual(4000, delay04); var delay05 = strategy.GetNextDelay(); Assert.AreEqual(8000, delay05); var delay06 = strategy.GetNextDelay(); Assert.AreEqual(16000, delay06); }
public void TestExponentialStrategy() { var strategy = new ExponentialRetryStrategy { MaxTries = ATTEMPTS, Interval = TimeSpan.FromMilliseconds(INTERVAL_MS), MaxInterval = TimeSpan.FromSeconds(2), MinInterval = TimeSpan.FromMilliseconds(500) }; int expectedTimeMs = 0; for (int i = 0; i < ATTEMPTS; ++i) { int scale = 1 << i; expectedTimeMs += INTERVAL_MS * scale; } RunBasicTests(strategy, expectedTimeMs); }