public void CircuitBreakerTripAndReset()
        {
            var circuitBreakerManager = new CircuitBreakerManager(circuitBreaker, sessionState);

            circuitBreakerManager.CircuitBreakerEnabled = true;
            circuitBreakerManager.ServiceEnabled        = false;
            var result = circuitBreakerManager.PerformAction();

            //see service failure message
            Assert.IsFalse(result.IsSuccess);
            Assert.AreEqual(CircuitBreakerManager.FailureMessage, result.Message);
            //try again to open circuit breaker
            result = circuitBreakerManager.PerformAction();
            Assert.IsFalse(result.IsSuccess);
            Assert.AreEqual(CircuitBreakerManager.FailureMessage, result.Message);
            //try again to see circuit breaker failure message
            result = circuitBreakerManager.PerformAction();
            Assert.IsFalse(result.IsSuccess);
            Assert.AreEqual(CircuitBreakerOpenException.ErrorMessage, result.Message);
            //wait 61 seconds for breaker to reset and set service to on and see success
            Thread.Sleep(61000);
            circuitBreakerManager.ServiceEnabled = true;
            result = circuitBreakerManager.PerformAction();
            Assert.IsTrue(result.IsSuccess);
        }
        public void ServiceOffCircuitBreakerOff()
        {
            var circuitBreakerManager = new CircuitBreakerManager(circuitBreaker, sessionState);

            circuitBreakerManager.CircuitBreakerEnabled = false;
            circuitBreakerManager.ServiceEnabled        = false;
            var result = circuitBreakerManager.PerformAction();

            Assert.IsFalse(result.IsSuccess);
        }