Пример #1
0
        private void TestKeyHandler_KeySequenceHandler_Wrong_Right()
        {
            var sequenceHandler = new KeySequenceHandler(
                new KeyCombinationHandler(VirtualKeyCode.Print),
                new KeyCombinationHandler(VirtualKeyCode.Shift, VirtualKeyCode.KeyA))
            {
                // Prevent debug issues, we are not testing the timeout here!
                Timeout = null
            };

            var result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.Print));

            Assert.False(result);
            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.Shift));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.KeyB));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.KeyB));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.Shift));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.Print));
            Assert.False(result);

            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.Shift));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.KeyA));
            Assert.True(result);
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.KeyA));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.Shift));
            Assert.False(result);
            Assert.False(sequenceHandler.HasKeysPressed);
        }
Пример #2
0
        private void TestKeyHandler_KeySequenceHandler_Right()
        {
            var sequenceHandler = new KeySequenceHandler(
                new KeyCombinationHandler(VirtualKeyCode.Print),
                new KeyCombinationHandler(VirtualKeyCode.Shift, VirtualKeyCode.KeyA))
            {
                Timeout = null
            };

            var result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.Print));

            Assert.False(result);
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.Print));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.Control));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.Control));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.Control));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.Shift));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.KeyA));
            Assert.True(result);
        }
Пример #3
0
        private void TestKeyHandler_SequenceWithOptionalKeys_OneTry()
        {
            var sequenceHandler = new KeySequenceHandler(
                new KeyCombinationHandler(VirtualKeyCode.Print),
                new KeyOrCombinationHandler(
                    new KeyCombinationHandler(VirtualKeyCode.Shift, VirtualKeyCode.KeyA),
                    new KeyCombinationHandler(VirtualKeyCode.Shift, VirtualKeyCode.KeyB))
                )
            {
                Timeout = null
            };

            bool result;

            // Print key
            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.Print));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.Print));
            Assert.False(result);

            // Shift KeyB
            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.Shift));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.KeyB));
            Assert.True(result);
            // Shift KeyB
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.KeyB));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.Shift));
            Assert.False(result);
        }
Пример #4
0
        private async Task TestKeyHandler_SequenceWithOptionalKeys_Timeout()
        {
            var sequenceHandler = new KeySequenceHandler(
                new KeyCombinationHandler(VirtualKeyCode.Print),
                new KeyOrCombinationHandler(
                    new KeyCombinationHandler(VirtualKeyCode.Shift, VirtualKeyCode.KeyA),
                    new KeyCombinationHandler(VirtualKeyCode.Shift, VirtualKeyCode.KeyB))
                )
            {
                Timeout = TimeSpan.FromMilliseconds(200)
            };

            bool result;

            // Print key
            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.Print));
            Assert.False(result);
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.Print));
            Assert.False(result);

            // Shift KeyB
            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.Shift));
            Assert.True(sequenceHandler.HasKeysPressed);
            Assert.False(result);
            await Task.Delay(400);

            result = sequenceHandler.Handle(KeyDown(VirtualKeyCode.KeyB));
            Assert.True(sequenceHandler.HasKeysPressed);
            Assert.False(result);
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.KeyB));
            Assert.True(sequenceHandler.HasKeysPressed);
            Assert.False(result);
            result = sequenceHandler.Handle(KeyUp(VirtualKeyCode.Shift));
            Assert.False(sequenceHandler.HasKeysPressed);
            Assert.False(result);
        }