public void ReceivingNativeInput_WhenHooked_CallsFactoryWithReceivedInput()
        {
            // Arrange
            var configuration = MouseEventConfiguration.CreateForAllEvents();

            _receiverMock.Setup(f => f.Configuration).Returns(configuration);
            _receiverMock.Setup(f => f.ReceiveAsync(It.IsAny <MouseInput>())).Returns(Task.FromResult(true));

            Action <NativeMouseInput> nativeInputCallback = null;

            _nativeMouseHookServiceMock.Setup(
                f => f.Hook(
                    It.IsAny <Action <NativeMouseInput> >()))
            .Callback <Action <NativeMouseInput> >(a => nativeInputCallback = a);

            var mouseInput = new MouseInput(MouseInputKey.Right, MouseInputDirection.MouseUp);

            _mouseInputFactoryMock.Setup(f => f.Create(It.IsAny <NativeMouseInput>())).Returns(mouseInput);

            _sut.HookMouse();

            var nativeMouseInput = new NativeMouseInput(NativeMouseInputKey.Left, NativeMouseInputDirection.MouseDown);

            // Act
            nativeInputCallback(nativeMouseInput);

            // Assert
            _mouseInputFactoryMock.Verify(f => f.Create(nativeMouseInput), Times.Once);
        }
        public void ReceivingNativeInput_ReceiverNotConfiguredForEvent_DoesNotCallReceiver()
        {
            // Arrange
            var mouseEventConfiguration = new MouseEventConfiguration(
                Option.CreateApplicible(MouseInputKey.Left),
                Option.CreateNotApplicable <MouseInputDirection>(true));

            _receiverMock.Setup(f => f.ReceiveAsync(It.IsAny <MouseInput>()));
            _receiverMock.Setup(f => f.Configuration).Returns(mouseEventConfiguration);

            var mouseInput = new MouseInput(MouseInputKey.Right, MouseInputDirection.MouseUp);

            _mouseInputFactoryMock.Setup(f => f.Create(It.IsAny <NativeMouseInput>())).Returns(mouseInput);

            Action <NativeMouseInput> nativeInputCallback = null;

            _nativeMouseHookServiceMock.Setup(
                f => f.Hook(
                    It.IsAny <Action <NativeMouseInput> >()
                    )).Callback <Action <NativeMouseInput> >(a => nativeInputCallback = a);

            _sut.HookMouse();
            var nativeKeyboardInput = new NativeMouseInput(NativeMouseInputKey.Right, NativeMouseInputDirection.MouseUp);

            // Act
            nativeInputCallback(nativeKeyboardInput);

            // Assert
            _receiverMock.Verify(f => f.ReceiveAsync(It.IsAny <MouseInput>()), Times.Never);
        }
Пример #3
0
        private void OnNativeMouseInput(NativeMouseInput nativeMouseInput)
        {
            var keyboardInput = _inputFactory.Create(nativeMouseInput);

            var receivingTasks = _receivers
                                 .Where(receiver => receiver.Configuration.CheckIfApplicable(keyboardInput))
                                 .Select(receiver => receiver.ReceiveAsync(keyboardInput))
                                 .ToArray();

            Task.Run(() => Task.WhenAll(receivingTasks));
        }
        public void Mapping_ReturnesMappedInput()
        {
            // Arrange
            var nativeMouseInput = new NativeMouseInput(NativeMouseInputKey.Left, NativeMouseInputDirection.MouseUp);

            // Act
            var actualMouseInput = _sut.Create(nativeMouseInput);

            // Assert
            Assert.AreEqual(MouseInputKey.Left, actualMouseInput.InputKey);
            Assert.AreEqual(MouseInputDirection.MouseUp, actualMouseInput.Direction);
        }
 public MouseInput Create(NativeMouseInput nativeInput)
 {
     return(new MouseInput(
                MapKey(nativeInput.Key),
                MapDirection(nativeInput.Direction)));
 }