public void ChangingShouldRaiseEvent() { var firstState = new Mock<State1>(); var secondState = new Mock<State2>(); var stateManager = new StateManagerBuilder() .RegisterState(() => firstState.Object) .RegisterState(() => secondState.Object) .Build(); stateManager.MonitorEvents(); stateManager.ChangeState<State1>(); stateManager.ShouldRaise("StateChanged"); }
public void ChangingToInitialState() { var firstState = new Mock<State1>(); var secondState = new Mock<State2>(); var stateManager = new StateManagerBuilder() .RegisterState(() => firstState.Object) .RegisterState(() => secondState.Object) .Build(); stateManager.ChangeState<State1>(); firstState.Verify(m => m.OnEnterState(It.IsAny<object>()), Times.Once()); firstState.Verify(m => m.OnExitState(), Times.Never()); secondState.Verify(m => m.OnEnterState(It.IsAny<object>()), Times.Never()); secondState.Verify(m => m.OnExitState(), Times.Never()); }