using System; using System.Windows.Input; using Paca.App.Core; using Xunit; namespace Paca.Tests.App; public class GlobalHotkeyGateTests { [Fact] public void Gate257_GlobalHotkeyParser_ParsesKeyModifiers() { var success = GlobalHotkeyParser.TryParse("Ctrl+Shift+D", out var modifiers, out var key); Assert.True(success); Assert.Equal(ModifierKeys.Control | ModifierKeys.Shift, modifiers); Assert.Equal(Key.D, key); } [Fact] public void Gate258_GlobalHotkeyParser_ParsesAlternativeShortcut() { var success = GlobalHotkeyParser.TryParse("Ctrl+Alt+V", out var modifiers, out var key); Assert.True(success); Assert.Equal(ModifierKeys.Control | ModifierKeys.Alt, modifiers); Assert.Equal(Key.V, key); } [Fact] public void Gate259_GlobalHotkeyManager_CalculatesWin32ModFlags() { var modFlags = GlobalHotkeyManager.GetWin32ModifierFlags(ModifierKeys.Control | ModifierKeys.Shift); // MOD_CONTROL = 0x0002, MOD_SHIFT = 0x0004 -> 0x0006 Assert.Equal(0x0006u, modFlags); var altWin = GlobalHotkeyManager.GetWin32ModifierFlags(ModifierKeys.Alt | ModifierKeys.Windows); // MOD_ALT = 0x0001, MOD_WIN = 0x0008 -> 0x0009 Assert.Equal(0x0009u, altWin); } [Fact] public void Gate260_GlobalHotkeyManager_HotkeyTrigger_InvokesCallback() { var manager = new GlobalHotkeyManager(); bool triggered = false; manager.RegisterVirtualHotkey("Ctrl+Shift+D", () => triggered = true); // Simulate trigger manager.SimulateHotkeyTrigger("Ctrl+Shift+D"); Assert.True(triggered); } }