An initializer class to initialize a back-off handler.
 public void SendAsync_BackOffUnsuccessfulResponseHandler_OK()
 {
     var initializer = new BackOffHandler.Initializer(new ExponentialBackOff(TimeSpan.Zero));
     SubtestSendAsync_BackOffUnsuccessfulResponseHandler(HttpStatusCode.OK, initializer);
 }
 public void SendAsync_BackOffUnsuccessfulResponseHandler_Cancel()
 {
     // test back-off with maximum 30 minutes per single request
     var initializer = new BackOffHandler.Initializer(new ExponentialBackOff(TimeSpan.Zero))
         {
             MaxTimeSpan = TimeSpan.FromMinutes(30)
         };
     SubtestSendAsync_BackOffUnsuccessfulResponseHandler(HttpStatusCode.ServiceUnavailable, initializer, 2);
     SubtestSendAsync_BackOffUnsuccessfulResponseHandler(HttpStatusCode.ServiceUnavailable, initializer, 6);
 }
 public void SendAsync_BackOffExceptionHandler_DontThrow()
 {
     var initializer = new BackOffHandler.Initializer(new ExponentialBackOff(TimeSpan.Zero));
     SubtestSendAsync_BackOffExceptionHandler(false, initializer);
 }
 public void SendAsync_BackOffUnsuccessfulResponseHandler_ServiceUnavailable_Max10Hours()
 {
     var initializer = new BackOffHandler.Initializer(new ExponentialBackOff(TimeSpan.Zero))
         {
             MaxTimeSpan = TimeSpan.FromHours(10)
         };
     SubtestSendAsync_BackOffUnsuccessfulResponseHandler(HttpStatusCode.ServiceUnavailable, initializer);
 }
        public void SendAsync_BackOffExceptionHandler_DifferentHandler()
        {
            var initializer = new BackOffHandler.Initializer(new ExponentialBackOff(TimeSpan.Zero));
            initializer.HandleExceptionFunc = e => (e is InvalidCastException);
            SubtestSendAsync_BackOffExceptionHandler(true, initializer, new InvalidCastException());

            initializer.HandleExceptionFunc = e => !(e is InvalidCastException);
            SubtestSendAsync_BackOffExceptionHandler(true, initializer, new InvalidCastException());
        }
 public void SendAsync_BackOffExceptionHandler_ThrowCanceledException()
 {
     var initializer = new BackOffHandler.Initializer(new ExponentialBackOff(TimeSpan.Zero));
     SubtestSendAsync_BackOffExceptionHandler(true, initializer, new TaskCanceledException());
 }
 public void SendAsync_BackOffExceptionHandler_Throw_Max1Hour()
 {
     var initializer = new BackOffHandler.Initializer(new ExponentialBackOff(TimeSpan.Zero))
         {
             MaxTimeSpan = TimeSpan.FromHours(1)
         };
     SubtestSendAsync_BackOffExceptionHandler(true, initializer);
 }
 public void SendAsync_BackOffExceptionHandler_Throw_Max200Milliseconds()
 {
     var initializer = new BackOffHandler.Initializer(new ExponentialBackOff(TimeSpan.Zero))
         {
             MaxTimeSpan = TimeSpan.FromMilliseconds(200)
         };
     SubtestSendAsync_BackOffExceptionHandler(true, initializer);
 }
 public void SendAsync_BackOffExceptionHandler_Throw_Max2Minutes()
 {
     // create exponential back-off without delta interval, so expected seconds are exactly 1, 2, 4, 8, etc.
     var initializer = new BackOffHandler.Initializer(new ExponentialBackOff(TimeSpan.Zero));
     SubtestSendAsync_BackOffExceptionHandler(true, initializer);
 }