public void WriteMoveHomeEndBackspaceMixedIntoTheEndOfBuffer() { var console = BuildConsole(); var writer = BuildWriter(console); var buffer = new CommandLineBuffer(); writer.Write(buffer, 'f'); writer.Write(buffer, 'o'); writer.Write(buffer, 'o'); Assert.Equal(3, _currentIndex); for (int i = 0; i < 90; i++) { writer.Write(buffer, 'x'); } Assert.Equal(93, _currentIndex); writer.MoveCursorHome(); Assert.Equal(0, _currentIndex); for (int i = 0; i < 92; i++) { writer.MoveCursorRight(); } Assert.Equal(92, _currentIndex); for (int i = 0; i < 89; i++) { writer.Backspace(buffer); } Assert.Equal(3, _currentIndex); writer.MoveCursorEnd(); Assert.Equal(4, _currentIndex); writer.Backspace(buffer); Assert.Equal(3, _currentIndex); Assert.Equal("foo", buffer.ToString()); Assert.Equal("foo", GetBuffer()); }
public void WriteMoveHomeEndBackspaceMixed() { var console = BuildConsole(); var writer = BuildWriter(console); var buffer = new CommandLineBuffer(); writer.Write(buffer, 'f'); writer.Write(buffer, 'o'); writer.Write(buffer, 'o'); for (int i = 0; i < 10; i++) { writer.Write(buffer, 'x'); } writer.MoveCursorHome(); for (int i = 0; i < 12; i++) { writer.MoveCursorRight(); } for (int i = 0; i < 9; i++) { writer.Backspace(buffer); } writer.MoveCursorEnd(); writer.Backspace(buffer); Assert.Equal("foo", buffer.ToString()); Assert.Equal("foo", GetBuffer()); }
public void WriteMoveBackspaceMixed() { var console = BuildConsole(); var writer = BuildWriter(console); var buffer = new CommandLineBuffer(); writer.Write(buffer, 'f'); writer.Write(buffer, 'b'); writer.Write(buffer, 'a'); writer.Write(buffer, 'r'); writer.MoveCursorLeft(); writer.MoveCursorLeft(); writer.MoveCursorLeft(); writer.Write(buffer, 'o'); writer.Write(buffer, 'o'); writer.MoveCursorRight(); writer.MoveCursorRight(); writer.Backspace(buffer); writer.Backspace(buffer); writer.Write(buffer, 'B'); writer.Write(buffer, '@'); writer.MoveCursorLeft(); writer.Write(buffer, 'A'); Assert.Equal("fooBA@r", buffer.ToString()); Assert.Equal("fooBA@r", GetBuffer()); }
public void WriteAndBackspaceWithRemainingCharactersTest() { var console = BuildConsole(); var writer = BuildWriter(console); var buffer = new CommandLineBuffer(); writer.Write(buffer, 'a'); writer.Write(buffer, 'b'); writer.Write(buffer, 'c'); writer.Write(buffer, 'd'); writer.Backspace(buffer); writer.Backspace(buffer); writer.Backspace(buffer); Assert.Equal("a", buffer.ToString()); Assert.Equal("a", GetBuffer()); }
public void WriteAndBackspaceTest() { var console = BuildConsole(); var writer = BuildWriter(console); var buffer = new CommandLineBuffer(); writer.Write(buffer, 'a'); writer.Write(buffer, 'b'); writer.Write(buffer, 'c'); writer.Write(buffer, 'd'); writer.Backspace(buffer); writer.Backspace(buffer); writer.Backspace(buffer); writer.Backspace(buffer); Assert.Equal(String.Empty, buffer.ToString()); Assert.Equal(String.Empty, GetBuffer()); }
public void WriteMoveAndBackspace() { var console = BuildConsole(); var writer = BuildWriter(console); var buffer = new CommandLineBuffer(); writer.Write(buffer, 'a'); writer.Write(buffer, 'b'); writer.Write(buffer, 'c'); writer.Write(buffer, 'd'); writer.MoveCursorLeft(); writer.MoveCursorLeft(); writer.Backspace(buffer); writer.Write(buffer, 'x'); Assert.Equal("axcd", buffer.ToString()); Assert.Equal("axcd", GetBuffer()); }
public void WriteMoveLeftAndBackspaceMoveEnd() { var console = BuildConsole(); var writer = BuildWriter(console); var buffer = new CommandLineBuffer(); writer.Write(buffer, 'f'); writer.Write(buffer, 'o'); writer.Write(buffer, 'o'); writer.Write(buffer, 'b'); Assert.Equal(4, _currentIndex); writer.MoveCursorLeft(); Assert.Equal(3, _currentIndex); writer.Backspace(buffer); Assert.Equal(2, _currentIndex); writer.Write(buffer, 'o'); Assert.Equal(3, _currentIndex); writer.MoveCursorEnd(); Assert.Equal(4, _currentIndex); Assert.Equal("foob", buffer.ToString()); Assert.Equal("foob", GetBuffer()); }