public void Execute() { _timerWasRunning = _timeService.TimerIsRunning; _eventDispatchingWasEnabled = _timeService.EventDispatchingEnabled; _previousState = _raceInstance.State; _timeService.DisableEventDispatching(); _timeService.StopGameTimer(); _raceInstance.ChangeState(new PausedState()); _raceInstance.Notify(); }
public void HandleInput_SetsErrorState_WhenInRunningStateAndUserInputIsInvalid(char letter) { _typingRaceState = new RunningState(); _typingRaceState.SetCommandInvoker(_commandInvoker); _typingRaceState.SetTimeService(_timeService); _typingRaceState.SetTypingRaceInstance(_raceInstance); _typingRaceState.SetRenderer(_gameRenderer); _typingRaceState.HandleInput(new ConsoleKeyInfo(letter, ConsoleKey.T, false, false, false)); _raceInstance.State.GetType().ShouldBe(typeof(ErrorState)); }
public void ChangeState(TypingRaceState state) { if (state == null) { throw new ArgumentNullException(); } State = state; State.SetCommandInvoker(_invoker); State.SetTimeService(_timeService); State.SetRenderer(_gameRenderer); State.SetTypingRaceInstance(this); }
public void HandleInput_DeletesInput_WhenStateIsErrorAndCharIsSpacebar(char letter) { _typingRaceState = new ErrorState(); _typingRaceState.SetCommandInvoker(_commandInvoker); _typingRaceState.SetTimeService(_timeService); _typingRaceState.SetTypingRaceInstance(_raceInstance); _typingRaceState.SetRenderer(_gameRenderer); _typingRaceState.HandleInput(new ConsoleKeyInfo(letter, ConsoleKey.T, false, false, false)); _typingRaceState.HandleInput(new ConsoleKeyInfo('\b', ConsoleKey.Backspace, false, false, false)); _raceInstance.UserInput.ShouldBe(string.Empty); }
public void Execute() { _previousState = _typingRaceInstance.State; _typingRaceInstance.ChangeState(_state); }
public TypingRaceStateChangeCommand(ITypingRaceInstance typingRaceInstance, TypingRaceState state) { _typingRaceInstance = typingRaceInstance; _state = state; }
public void Update(TypingRaceState typingRaceState) => Console.Clear();