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);
        }