public void WhenCreatingANewConfigurationShouldBeCreatedWithNoWaitTimeAndRetryForever() { var configuration = new RetryPolicyConfiguration <Event>(); Assert.IsTrue(configuration.ForeverRetry); Assert.IsNull(configuration.RetryTime); }
public void WhenConfiguringRetryForeverShouldSetPropertyCorrectly() { var configuration = new RetryPolicyConfiguration <Event>(); configuration.RetryForever(); Assert.IsTrue(configuration.ForeverRetry); }
public void WhenConfiguringRetryForeverWithRetryTimesSetShouldThrowException() { var configuration = new RetryPolicyConfiguration <Event>(); configuration.RetryForTimes(5); configuration.ForEachRetryWait(TimeSpan.FromSeconds(20)); Assert.Throws <CantRetryForeverOverRetryTimesConfigurationException>(() => configuration.RetryForever()); }
public void WhenConfiguringToRetryTimesShoudlSetPropertyCorrectly() { var configuration = new RetryPolicyConfiguration <Event>(); var retryTimes = 5; configuration.RetryForTimes(5); Assert.AreEqual(retryTimes, configuration.MaxRetryTimes); }
public static IAzureDevopsClient CreateUsingPersonalAccessToken(string organization, string personalAccessToken, RetryPolicyConfiguration retryPolicyConfiguration = null) { if (azureDevopsClient is null) { var httpClient = CreateHttpClient(organization, personalAccessToken); azureDevopsClient = new AzureDevopsClient(httpClient, retryPolicyConfiguration ?? RetryPolicyConfiguration.Default); } return(azureDevopsClient); }
public void WhenConfiguringRetryForeverWithWaitFailureShouldSetValueCorrectly() { var configuration = new RetryPolicyConfiguration <TestEvent>(); var waitTimeInput1 = TimeSpan.FromSeconds(5); configuration.ForEachRetryWait(waitTimeInput1); var waitTimeOutput1 = configuration.RetryTime(new Failure <TestEvent>(new TestEvent(), 5, new Exception())); Assert.AreEqual(waitTimeOutput1.TotalMilliseconds, waitTimeInput1.TotalMilliseconds); var waitTimeInput2 = TimeSpan.FromSeconds(10); configuration.ForEachRetryWait(f => waitTimeInput2); var waitTimeOutput2 = configuration.RetryTime(new Failure <TestEvent>(new TestEvent(), 5, new Exception())); Assert.AreEqual(waitTimeOutput2.TotalMilliseconds, waitTimeInput2.TotalMilliseconds); }
private AsyncRetryPolicy CreatePolicy(RetryPolicyConfiguration retryPolicyConfiguration) => Policy.Handle <Exception>(e => true) .WaitAndRetryAsync(retryCount: retryPolicyConfiguration.RetryCount, retryAttempt => TimeSpan.FromSeconds(retryPolicyConfiguration.RetryAttemptFactor * retryAttempt) );
public AzureDevopsClient(HttpClient httpClient, RetryPolicyConfiguration retryPolicyConfiguration) { this.httpClient = httpClient; asyncRetryPolicy = CreatePolicy(retryPolicyConfiguration); }