public void ApplyShouldDeleteChar(int position) { state.CurrentPosition = position; command = new BackspaceCommand(); var oldState = new ControllerState(state); var result = command.Apply(state); result.Should().BeTrue(); state.Text.ToString().Should().BeEquivalentTo(oldState.Text.Remove(position - 1, 1).ToString()); state.CurrentPosition.Should().Be(position - 1); }
public void RevertShouldRestoreState(int position) { state.CurrentPosition = position; command = new BackspaceCommand(); var oldState = new ControllerState(state); var applyResult = command.Apply(state); applyResult.Should().BeTrue(); var result = command.Revert(state); result.Should().BeTrue(); state.Should().Be(oldState); }
public void Backspace() { if (this.document.Length() == 0) { return; } IUndoableCommand command = new BackspaceCommand(this.document); this.undoStack.Push(command); this.redoStack.Clear(); command.Execute(); }