public void MovingCursorRelativeToEnd() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.MoveCursor(SeekOrigin.End, 1, out int delta).Should().BeFalse(); buffer.CursorIndex.Should().Be(0); delta.Should().Be(0); buffer.MoveCursor(SeekOrigin.End, 0, out delta).Should().BeTrue(); buffer.CursorIndex.Should().Be(4); delta.Should().Be(4); buffer.MoveCursor(SeekOrigin.End, -2, out delta).Should().BeTrue(); buffer.CursorIndex.Should().Be(2); delta.Should().Be(-2); buffer.MoveCursor(SeekOrigin.End, 4, out delta).Should().BeFalse(); buffer.CursorIndex.Should().Be(2); delta.Should().Be(0); buffer.MoveCursor(SeekOrigin.End, -10, out delta).Should().BeFalse(); buffer.CursorIndex.Should().Be(2); delta.Should().Be(0); }
public void ReadingAtWithExplicitBuffer() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); var outBuffer = new char[4]; buffer.ReadAt(0, outBuffer, 0, 2); outBuffer[0].Should().Be('a'); outBuffer[1].Should().Be('b'); buffer.ReadAt(2, outBuffer, 0, 2); outBuffer[0].Should().Be('c'); outBuffer[1].Should().Be('d'); outBuffer[0] = 'x'; buffer.ReadAt(0, outBuffer, 1, 1); outBuffer[0].Should().Be('x'); outBuffer[1].Should().Be('a'); buffer.Invoking(b => b.ReadAt(0, null, 0, 2)).Should().Throw <ArgumentNullException>(); buffer.Invoking(b => b.ReadAt(2, outBuffer, 0, 4)).Should().Throw <ArgumentException>(); buffer.Invoking(b => b.ReadAt(2, outBuffer, 3, 2)).Should().Throw <ArgumentException>(); }
public void ReplaceWithTooLongString() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.Invoking(b => b.Replace("xyzzy")).Should().Throw <ArgumentOutOfRangeException>(); }
public void ReplaceWithNullString() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.Invoking(b => b.Replace(null)).Should().Throw <ArgumentNullException>(); }
public void ReplaceEntireString() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.Replace("xyzw"); buffer.Contents.Should().Be("xyzw"); }
public void ReplaceWithEmptyString() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.Replace(string.Empty); buffer.Contents.Should().Be("abcd"); }
public void ReplacingAtEnd() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.MoveCursor(SeekOrigin.End, 0); buffer.Invoking(b => b.Replace('x')).Should().Throw <Exception>(); }
public void ReplaceOneChar() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.MoveCursor(SeekOrigin.Current, 1).Should().BeTrue(); buffer.Replace('x'); buffer.Contents.Should().Be("axcd"); }
public void RemovePastEnd() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.Remove(5).Should().BeFalse(); buffer.Contents.Should().Be("abcd"); }
public void MovingCursorBogusly() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.Invoking(b => b.MoveCursor((SeekOrigin)0x10, 1)) .Should().Throw <ArgumentOutOfRangeException>(); }
public void ReplacePartOfString() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.MoveCursor(SeekOrigin.Begin, 1); buffer.Replace("xy"); buffer.Contents.Should().Be("axyd"); }
public void EmptyBuffer() { var buffer = new ConsoleInputBuffer(); buffer.Contents.Should().BeEmpty(); buffer.CursorIndex.Should().Be(0); buffer.Length.Should().Be(0); buffer.CursorIsAtEnd.Should().BeTrue(); buffer.ToString().Should().BeEmpty(); }
public void MovingCursorBogusly() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); Action movement = () => buffer.MoveCursor((SeekOrigin)0x10, 1); movement.ShouldThrow <ArgumentOutOfRangeException>(); }
public void ReplaceWithNullString() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); Action replacement = () => buffer.Replace(null); replacement.ShouldThrow <ArgumentNullException>(); }
public void RemovingAtEnd() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.MoveCursor(SeekOrigin.End, 0); buffer.Remove().Should().BeFalse(); buffer.Contents.Should().Be("abcd"); }
public void RemoveCharBeforeStart() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.RemoveCharBeforeCursor().Should().BeFalse(); buffer.Contents.Should().Be("abcd"); }
public void ReplaceWithTooLongString() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); Action replacement = () => buffer.Replace("xyzzy"); replacement.ShouldThrow <ArgumentOutOfRangeException>(); }
public void ReplacingAtEnd() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.MoveCursor(SeekOrigin.End, 0); Action replacementAction = () => buffer.Replace('x'); replacementAction.ShouldThrow <Exception>(); }
public void ReadingAt() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.ReadAt(0, 2).Should().ContainInOrder('a', 'b'); buffer.ReadAt(2, 2).Should().ContainInOrder('c', 'd'); ((Action)(() => buffer.ReadAt(2, 4))).ShouldThrow <ArgumentException>(); ((Action)(() => buffer.ReadAt(3, 2))).ShouldThrow <ArgumentException>(); }
public void ReadingAt() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.ReadAt(0, 2).Should().Equal('a', 'b'); buffer.ReadAt(2, 2).Should().Equal('c', 'd'); buffer.Invoking(b => b.ReadAt(2, 4)).Should().Throw <ArgumentException>(); buffer.Invoking(b => b.ReadAt(3, 2)).Should().Throw <ArgumentException>(); }
public void RemoveCharBeforeInMiddle() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.MoveCursor(SeekOrigin.End, -1); buffer.RemoveCharBeforeCursor().Should().BeTrue(); buffer.Contents.Should().Be("abd"); buffer.Length.Should().Be(3); buffer.CursorIndex.Should().Be(2); }
public void Reading() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.Read(0).Should().BeEmpty(); buffer.Read(1).Should().ContainInOrder('a'); buffer.Read(2).Should().ContainInOrder('a', 'b'); buffer.Read(3).Should().ContainInOrder('a', 'b', 'c'); buffer.Read(4).Should().ContainInOrder('a', 'b', 'c', 'd'); ((Action)(() => buffer.Read(5))).ShouldThrow <ArgumentException>(); }
public void InsertStringAtEnd() { const string s = "xyzzy"; var buffer = new ConsoleInputBuffer(); buffer.Insert(s); buffer.Contents.Should().Be(s); buffer.CursorIndex.Should().Be(0); buffer.Length.Should().Be(s.Length); buffer.CursorIsAtEnd.Should().BeFalse(); buffer.ToString().Should().Be(s); }
public void InsertCharAtEnd() { var buffer = new ConsoleInputBuffer(); buffer.Insert('x'); buffer.Contents.Should().Be("x"); buffer.CursorIndex.Should().Be(0); buffer.Length.Should().Be(1); buffer.CursorIsAtEnd.Should().BeFalse(); buffer.ToString().Should().Be("x"); buffer[0].Should().Be('x'); }
public void Reading() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.Read(0).Should().BeEmpty(); buffer.Read(1).Should().Equal('a'); buffer.Read(2).Should().Equal('a', 'b'); buffer.Read(3).Should().Equal('a', 'b', 'c'); buffer.Read(4).Should().Equal('a', 'b', 'c', 'd'); buffer.Invoking(b => b.Read(5)).Should().Throw <ArgumentException>(); }
static void Main(string[] args) { using (ConsoleInputBuffer ib = JConsole.GetInputBuffer()) { while (true) { ConsoleInputEventInfo[] events = ib.ReadEvents(10); Console.WriteLine("{0} events", events.Length); foreach (ConsoleInputEventInfo ev in events) { Console.WriteLine("Event type = {0}", ev.EventType); switch (ev.EventType) { case ConsoleInputEventType.KeyEvent: Console.WriteLine("Key {0}", ev.KeyEvent.KeyDown ? "down" : "up"); Console.WriteLine("Scan code = {0}", ev.KeyEvent.VirtualScanCode); Console.WriteLine("Virtual key code = {0}", ev.KeyEvent.VirtualKeyCode); Console.WriteLine("Control key state = {0}", ev.KeyEvent.ControlKeyState); Console.WriteLine("Ascii char = {0}", ev.KeyEvent.AsciiChar); break; case ConsoleInputEventType.MouseEvent: if ((ev.MouseEvent.EventFlags & (ConsoleMouseEventType)0xfffff) == 0) { Console.Write("Mouse button,"); } if ((ev.MouseEvent.EventFlags & ConsoleMouseEventType.DoubleClick) != 0) { Console.Write("Double click,"); } if ((ev.MouseEvent.EventFlags & ConsoleMouseEventType.MouseWheeled) != 0) { Console.Write("Mouse wheeled,"); } if ((ev.MouseEvent.EventFlags & ConsoleMouseEventType.MouseMoved) != 0) { Console.Write("Mouse moved,"); } if ((ev.MouseEvent.EventFlags & ConsoleMouseEventType.MouseHWheeled) != 0) { Console.Write("Mouse hWheeled,"); } Console.WriteLine("Button state = {0}", ev.MouseEvent.ButtonState); break; } } } } }
private ConsoleLineInput CreateInput(IConsoleOutput consoleOutput = null, ConsoleCompletionHandler completionHandler = null) { consoleOutput = consoleOutput ?? Substitute.For <IConsoleOutput>(); var buffer = new ConsoleInputBuffer(); var history = new ConsoleHistory(); var input = new ConsoleLineInput(consoleOutput, buffer, history, completionHandler); input.ConsoleOutput.Should().BeSameAs(consoleOutput); input.Buffer.Should().BeSameAs(buffer); input.History.Should().BeSameAs(history); input.CompletionHandler.Should().BeSameAs(completionHandler); input.InsertMode.Should().BeTrue(); return(input); }
public void RemoveMultipleChars() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.MoveCursor(SeekOrigin.Begin, 1); buffer.Remove(2).Should().BeTrue(); buffer.Contents.Should().Be("ad"); buffer.CursorIndex.Should().Be(1); buffer.Length.Should().Be(2); buffer.CursorIsAtEnd.Should().BeFalse(); buffer.ToString().Should().Be("ad"); }
public void RemoveLastChar() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.MoveCursor(SeekOrigin.Begin, 3); buffer.Remove().Should().BeTrue(); buffer.Contents.Should().Be("abc"); buffer.CursorIndex.Should().Be(3); buffer.Length.Should().Be(3); buffer.CursorIsAtEnd.Should().BeTrue(); buffer.ToString().Should().Be("abc"); }
public void InsertStringInMiddle() { var buffer = new ConsoleInputBuffer(); buffer.Insert("abcd"); buffer.MoveCursor(SeekOrigin.Begin, 2); buffer.Insert("xyz"); buffer.Contents.Should().Be("abxyzcd"); buffer.CursorIndex.Should().Be(2); buffer.Length.Should().Be(7); buffer.CursorIsAtEnd.Should().BeFalse(); buffer.ToString().Should().Be("abxyzcd"); }