public void NestedInvoker() { PassThroughInvoker passThrough = new PassThroughInvoker(); this.parameters = new CircuitBreakerStateParameters { stateMachine = this.parameters.stateMachine, settings = this.parameters.settings, invoker = passThrough }; var state = new CircuitBreakerStateNormal(this.parameters); this.stateMachine.SetupProperty(m => m.State, state); int counter = 0; Task t = state.ExecuteAsync <bool>(async() => { await Task.Delay(TimeSpan.FromMilliseconds(1)); counter++; return(true); }); t.Wait(); Assert.AreEqual(1, counter); Assert.IsTrue(passThrough.Verify); }
public void TestInitialize() { this.stateMachine = new Mock <CircuitBreakerStateMachine>(); this.settings = new CircuitBreakerSettings(); this.invoker = new InnerCommandInvoker(); this.parameters = new CircuitBreakerStateParameters { stateMachine = this.stateMachine.Object, settings = this.settings, invoker = this.invoker }; }
public void StateChangedNotification() { var parameters = new CircuitBreakerStateParameters { stateMachine = this.stateMachine, settings = new CircuitBreakerSettings(), invoker = new InnerCommandInvoker() }; var newState = new CircuitBreakerStateNormal(parameters); bool wasCalled = false; this.stateMachine.StateChanged += (sender, e) => { wasCalled = true; Assert.AreEqual(this.initialState.Object, e.Previous); Assert.AreEqual(newState, e.Current); }; this.stateMachine.State = newState; Assert.IsTrue(wasCalled); Assert.AreEqual(newState, this.stateMachine.State); }