public SequentialRequestStrategy([NotNull] ISequentialTimeoutsProvider timeoutsProvider)
        {
            if (timeoutsProvider == null)
            {
                throw new ArgumentNullException(nameof(timeoutsProvider));
            }

            this.timeoutsProvider = timeoutsProvider;
        }
        public void TestSetup()
        {
            replica1 = new Uri("http://replica1/");
            replica2 = new Uri("http://replica2/");
            replica3 = new Uri("http://replica3/");
            replicas = new[] { replica1, replica2, replica3 };

            request    = Request.Get("/foo");
            parameters = RequestParameters.Empty.WithConnectionTimeout(1.Seconds());

            timeoutsProvider = Substitute.For <ISequentialTimeoutsProvider>();
            timeoutsProvider.GetTimeout(null, null, 0, 0).ReturnsForAnyArgs(1.Seconds(), 2.Seconds(), 3.Seconds());

            sender = Substitute.For <IRequestSender>();
            SetupResult(replica1, ResponseVerdict.Reject);
            SetupResult(replica2, ResponseVerdict.Reject);
            SetupResult(replica3, ResponseVerdict.Reject);

            tokenSource = new CancellationTokenSource();
            token       = tokenSource.Token;

            strategy = new SequentialRequestStrategy(timeoutsProvider);
        }
        public void SetUp()
        {
            replica1 = new Uri("http://replica1/");
            replica2 = new Uri("http://replica2/");
            replica3 = new Uri("http://replica3/");
            replicas = new[] { replica1, replica2, replica3 };

            request = Request.Get("/foo");

            timeoutsProvider = Substitute.For <ISequentialTimeoutsProvider>();
            // ReSharper disable AssignNullToNotNullAttribute
            timeoutsProvider.GetTimeout(null, null, 0, 0).ReturnsForAnyArgs(1.Seconds(), 2.Seconds(), 3.Seconds());
            // ReSharper restore AssignNullToNotNullAttribute

            sender = Substitute.For <IRequestSender>();
            SetupResult(replica1, ResponseVerdict.Reject);
            SetupResult(replica2, ResponseVerdict.Reject);
            SetupResult(replica3, ResponseVerdict.Reject);

            token = new CancellationTokenSource().Token;

            strategy = new SequentialRequestStrategy(timeoutsProvider);
        }
 /// <summary>
 /// Creates an instance of <see cref="SequentialRequestStrategy"/> with given <paramref name="timeoutsProvider"/>.
 /// </summary>
 public static SequentialRequestStrategy Sequential(ISequentialTimeoutsProvider timeoutsProvider)
 {
     return(new SequentialRequestStrategy(timeoutsProvider));
 }
Example #5
0
 /// <summary>
 /// Creates an instance of <see cref="SequentialRequestStrategy"/> with given <paramref name="timeoutsProvider"/>.
 /// </summary>
 public static SequentialRequestStrategy Sequential(ISequentialTimeoutsProvider timeoutsProvider) =>
 new SequentialRequestStrategy(timeoutsProvider);