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); }