Beispiel #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);
        }
        public void TestSetup()
        {
            request         = Request.Get("foo/bar");
            result          = new ClusterResult(ClusterResultStatus.ReplicasExhausted, new List <ReplicaResult>(), null, request);
            nextModuleCalls = 0;

            context = Substitute.For <IRequestContext>();
            context.Budget.Returns(Budget.Infinite);
            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);

            retryStrategy = Substitute.For <IRetryStrategy>();
            retryStrategy.AttemptsCount.Returns(MaxAttempts);
            retryStrategy.GetRetryDelay(Arg.Any <int>()).Returns(TimeSpan.Zero);

            module = new RequestRetryModule(retryPolicy, retryStrategy);
        }