/// <summary> /// Constructor /// </summary> public CircuitBreakerWithThrottling(CircuitBreakerWithThrottlingOptions options) : base(options) { InternalContract.RequireNotNull(options, nameof(options)); InternalContract.RequireValidated(options, nameof(options)); _options = options; _options.ThrottlingCoolDownStrategy.Reset(); }
public void Initialize() { FulcrumApplicationHelper.UnitTestSetup(nameof(CircuitBreakerTests)); _coolDownStrategyMock = new Mock <ICoolDownStrategy>(); _coolDownStrategyMock .Setup(strategy => strategy.Reset()); _coolDownStrategyMock .Setup(strategy => strategy.StartNextCoolDownPeriod()); var circuitBreakerOptions = new CircuitBreakerWithThrottlingOptions { CoolDownStrategy = _coolDownStrategyMock.Object, CancelConcurrentRequestsWhenOneFails = false, ThrottlingCoolDownStrategy = _coolDownStrategyMock.Object, ConcurrencyThresholdForChokingResolved = 100 }; _circuitBreakersUnderTest = new ICircuitBreaker[] { new CircuitBreaker(circuitBreakerOptions), new CircuitBreakerWithThrottling(circuitBreakerOptions) }; }