Exemple #1
0
        public void Should_not_retry_if_retry_strategy_attempts_count_is_insufficient()
        {
            var retryStrategy = Substitute.For <IRetryStrategy>();

            retryStrategy.AttemptsCount.Returns(1);
            retryStrategyEx = new RetryStrategyAdapter(retryStrategy);
            module          = new RequestRetryModule(retryPolicy, retryStrategyEx);

            Execute().Should().BeSameAs(result);

            nextModuleCalls.Should().Be(1);
        }
Exemple #2
0
        public void TestSetup()
        {
            request         = Request.Get("foo/bar");
            result          = new ClusterResult(ClusterResultStatus.ReplicasExhausted, new List <ReplicaResult>(), null, request);
            nextModuleCalls = 0;

            context = Substitute.For <IRequestContext>();
            var infinityBudget = Budget.Infinite;

            context.Budget.Returns(infinityBudget);
            context.Log.Returns(new ConsoleLog());
            context.Request.Returns(request);

            retryPolicy = Substitute.For <IRetryPolicy>();
            retryPolicy.NeedToRetry(Arg.Any <Request>(), Arg.Any <RequestParameters>(), Arg.Any <IList <ReplicaResult> >()).Returns(true);

            internalDeprecatedRetryStrategy = Substitute.For <IRetryStrategy>();
            internalDeprecatedRetryStrategy.AttemptsCount.Returns(MaxAttempts);
            internalDeprecatedRetryStrategy.GetRetryDelay(Arg.Any <int>()).Returns(TimeSpan.Zero);
            retryStrategyEx = new RetryStrategyAdapter(internalDeprecatedRetryStrategy);

            module = new RequestRetryModule(retryPolicy, retryStrategyEx);
        }
 public RequestRetryModule(IRetryPolicy retryPolicy, IRetryStrategyEx retryStrategy)
 {
     this.retryPolicy   = retryPolicy;
     this.retryStrategy = retryStrategy;
 }