public void ShouldFail_OnWrongParameters() { var service = new DefaultTryRetryService(); ExpectException <ArgumentNullException>(() => { service.TryWithRetry(null, 1, 50); }); ExpectException <ArgumentNullException>(() => { service.TryWithRetry(() => { return(true); }, 1, 50, null); }); ExpectException <ArgumentOutOfRangeException>(() => { service.TryWithRetry(() => { return(false); }, -1, 50); }); ExpectException <ArgumentOutOfRangeException>(() => { service.TryWithRetry(() => { return(false); }, 1, -50); }); }
public void ShouldWork_On_FirstAttempt() { var service = new DefaultTryRetryService(); var currentTryCount = 0; var maxTryCount = Rnd.Int(5) + 1; service.TryWithRetry(() => { currentTryCount++; return(true); }, maxTryCount, 50); Assert.AreEqual(1, currentTryCount); }
public void ShouldFail_OnMoreAttempts() { var service = new DefaultTryRetryService(); var currentTryCount = 0; ExpectException <SPMeta2Exception>(() => { service.TryWithRetry(() => { currentTryCount++; return(false); }); }); Assert.AreEqual(service.MaxRetryCount, currentTryCount); }
public void CanOverride_MaxTryAttempts() { var service = new DefaultTryRetryService(); var currentTryCount = 0; var maxTryCount = Rnd.Int(5) + 1; ExpectException <SPMeta2Exception>(() => { service.TryWithRetry(() => { currentTryCount++; return(false); }, maxTryCount, 50); }); Assert.AreEqual(maxTryCount, currentTryCount); }
public void ShouldWork_On_RandomAttempt() { var service = new DefaultTryRetryService(); var currentTryCount = 0; var maxTryCount = Rnd.Int(5) + 2; var positiveTryCount = maxTryCount / 2 + 1; service.TryWithRetry(() => { currentTryCount++; if (positiveTryCount == currentTryCount) { return(true); } return(false); }, maxTryCount, 50); Assert.AreEqual(positiveTryCount, currentTryCount); }