public void ItShouldExecuteTheCommandsOnTheStartState(IStateMachine stateMachine, [Frozen]ICommandChannel commandChannel, EventCodes eventCodes, Controller sut)
			{
				// Arrange
				var startingState = stateMachine.StartingState;

				sut.HandleEventCode(eventCodes.NewStateEventCode);

				// Act
				sut.HandleEventCode(eventCodes.ResetEventCode);

				// Assert
				A.CallTo(() => startingState.ExecuteActions(commandChannel)).MustHaveHappened(Repeated.Exactly.Once);
			}
			public void ItShouldExecuteTheCommandsOnTheNewState(IState newState, [Frozen]ICommandChannel commandChannel, EventCodes eventCodes, Controller sut)
			{
				// Arrange

				// Act
				sut.HandleEventCode(eventCodes.NewStateEventCode);

				// Assert
				A.CallTo(() => newState.ExecuteActions(commandChannel)).MustHaveHappened(Repeated.Exactly.Once);
			}
			public void ItShouldTransitionToTheStartState(IStateMachine stateMachine, EventCodes eventCodes, Controller sut)
			{
				// Arrange
				var startingState = stateMachine.StartingState;

				sut.HandleEventCode(eventCodes.NewStateEventCode);

				// Act
				sut.HandleEventCode(eventCodes.ResetEventCode);

				// Assert
				sut.CurrentState.Should().BeSameAs(startingState);
			}
			public void ItShouldTransitionToTheNewState(IStateMachine stateMachine, IState newState, EventCodes eventCodes, Controller sut)
			{
				// Arrange

				// Act
				sut.HandleEventCode(eventCodes.NewStateEventCode);

				// Assert
				sut.CurrentState.Should().BeSameAs(newState);
			}