Exemplo n.º 1
0
        public void WhenCreatingANewConfigurationShouldBeCreatedWithNoWaitTimeAndRetryForever()
        {
            var configuration = new RetryPolicyConfiguration <Event>();

            Assert.IsTrue(configuration.ForeverRetry);
            Assert.IsNull(configuration.RetryTime);
        }
Exemplo n.º 2
0
        public void WhenConfiguringRetryForeverShouldSetPropertyCorrectly()
        {
            var configuration = new RetryPolicyConfiguration <Event>();

            configuration.RetryForever();
            Assert.IsTrue(configuration.ForeverRetry);
        }
Exemplo n.º 3
0
        public void WhenConfiguringRetryForeverWithRetryTimesSetShouldThrowException()
        {
            var configuration = new RetryPolicyConfiguration <Event>();

            configuration.RetryForTimes(5);
            configuration.ForEachRetryWait(TimeSpan.FromSeconds(20));
            Assert.Throws <CantRetryForeverOverRetryTimesConfigurationException>(() => configuration.RetryForever());
        }
Exemplo n.º 4
0
        public void WhenConfiguringToRetryTimesShoudlSetPropertyCorrectly()
        {
            var configuration = new RetryPolicyConfiguration <Event>();
            var retryTimes    = 5;

            configuration.RetryForTimes(5);
            Assert.AreEqual(retryTimes, configuration.MaxRetryTimes);
        }
Exemplo n.º 5
0
 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);
 }
Exemplo n.º 6
0
        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);
 }