public void KeyEvents_NotFocused_Nothing() { ConControls.Controls.ConsoleControl?focused = null; using var stubbedWindow = new StubbedWindow { FocusedControlGet = () => focused, FocusedControlSetConsoleControl = c => focused = c }; var stubbedController = new StubbedConsoleTextController { BufferLineCountGet = () => 20, MaxLineLengthGet = () => 20, WidthGet = () => 20, EndCaretGet = () => (0, 20).Pt(), GetLineLengthInt32 = l => 20 }; using var sut = new StubbedTextControl(stubbedWindow, stubbedController) { Area = (5, 5, 10, 10).Rect(), Parent = stubbedWindow, Caret = (10, 10).Pt() }; sut.Focused.Should().BeFalse(); var e = new KeyEventArgs(new ConsoleKeyEventArgs(new KEY_EVENT_RECORD { KeyDown = 1, VirtualKeyCode = VirtualKey.Up })); stubbedWindow.KeyEventEvent(stubbedWindow, e); sut.Caret.Should().Be((10, 10).Pt()); sut.Scroll.Should().Be(Point.Empty); e.Handled.Should().BeFalse(); }
public void OnKeyEvent_Disabled_Notthing() { ConControls.Controls.ConsoleControl?focused = null; using var stubbedWindow = new StubbedWindow { FocusedControlGet = () => focused, FocusedControlSetConsoleControl = c => focused = c }; using var sut = new ConControls.Controls.Button(stubbedWindow) { Size = (10, 3).Sz(), Parent = stubbedWindow, Enabled = false }; focused = sut; sut.Focused.Should().BeTrue(); bool clicked = false; sut.Click += (sender, ea) => clicked = true; var e = new KeyEventArgs(new ConsoleKeyEventArgs(new KEY_EVENT_RECORD { KeyDown = 1, ControlKeys = ControlKeyStates.NUMLOCK_ON, VirtualKeyCode = VirtualKey.Return })); stubbedWindow.KeyEventEvent(stubbedWindow, e); clicked.Should().BeFalse(); e.Handled.Should().BeFalse(); }
public void OnWindowKeyEvent_VisibleEnabledFocused_OnKeyEventCalledThreadSafe() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow) { Parent = stubbedWindow, Focusable = true, Focused = true }; stubbedWindow.KeyEventEvent(stubbedWindow, new KeyEventArgs(new ConsoleKeyEventArgs(default)));
public void KeyEvents_Next_MovedPageDownAndScrolled() { StubbedTextControl?focused = null; using var stubbedWindow = new StubbedWindow { FocusedControlGet = () => focused }; var stubbedController = new StubbedConsoleTextController { BufferLineCountGet = () => 20, MaxLineLengthGet = () => 20, WidthGet = () => 20, EndCaretGet = () => (0, 20).Pt(), GetLineLengthInt32 = l => 20, MoveCaretPageDownPointInt32 = (p, l) => { l.Should().Be(10); p.Should().Be((10, 10).Pt()); return((13, 14).Pt()); } }; using var sut = new StubbedTextControl(stubbedWindow, stubbedController) { Area = (5, 5, 10, 10).Rect(), Parent = stubbedWindow, Caret = (10, 10).Pt() }; focused = sut; sut.Focused.Should().BeTrue(); var e = new KeyEventArgs(new ConsoleKeyEventArgs(new KEY_EVENT_RECORD { KeyDown = 1, VirtualKeyCode = VirtualKey.Next })); stubbedWindow.KeyEventEvent(stubbedWindow, e); sut.Caret.Should().Be((13, 14).Pt()); sut.Scroll.Should().Be((4, 5).Pt()); e.Handled.Should().BeTrue(); } } }
public void KeyEvents_RightCtrlEnd_MovedToEndAndScrolled() { StubbedTextControl?focused = null; using var stubbedWindow = new StubbedWindow { FocusedControlGet = () => focused }; var stubbedController = new StubbedConsoleTextController { BufferLineCountGet = () => 20, MaxLineLengthGet = () => 20, WidthGet = () => 20, EndCaretGet = () => (0, 20).Pt(), GetLineLengthInt32 = l => 20, MoveCaretEndPoint = p => { p.Should().Be((10, 10).Pt()); return((13, 14).Pt()); } }; using var sut = new StubbedTextControl(stubbedWindow, stubbedController) { Area = (5, 5, 10, 10).Rect(), Parent = stubbedWindow, Caret = (10, 10).Pt() }; focused = sut; sut.Focused.Should().BeTrue(); var e = new KeyEventArgs(new ConsoleKeyEventArgs(new KEY_EVENT_RECORD { KeyDown = 1, VirtualKeyCode = VirtualKey.End, ControlKeys = ControlKeyStates.RIGHT_CTRL_PRESSED })); stubbedWindow.KeyEventEvent(stubbedWindow, e); sut.Caret.Should().Be((13, 14).Pt()); sut.Scroll.Should().Be((4, 5).Pt()); e.Handled.Should().BeTrue(); }
public void KeyEvents_EventArgsNull_ArgumentNullException() { using var stubbedWindow = new StubbedWindow(); var stubbedController = new StubbedConsoleTextController { BufferLineCountGet = () => 20, MaxLineLengthGet = () => 20, WidthGet = () => 20, EndCaretGet = () => (0, 20).Pt(), GetLineLengthInt32 = l => 20 }; using var sut = new ConControls.Controls.TextBlock(stubbedWindow, stubbedController) { Area = (5, 5, 10, 10).Rect(), Parent = stubbedWindow, Caret = (10, 10).Pt(), Focused = true }; sut.Invoking(s => stubbedWindow.KeyEventEvent(stubbedWindow, null !)).Should().Throw <ArgumentNullException>(); }