/// <summary>Sends a message to the game's window</summary>
 /// <param name="message">Message that will be sent</param>
 /// <param name="wParam">Value for the message's wParam</param>
 /// <param name="lParam">Value for the message's lParam</param>
 /// <returns>The value returned by the window procedure for the message</returns>
 private int sendMessage(
   UnsafeNativeMethods.WindowMessages message, int wParam, int lParam
 ) {
   return UnsafeNativeMethods.SendMessage(
     this.form.Handle, (uint)message, new IntPtr(wParam), new IntPtr(lParam)
   ).ToInt32();
 }
    public void TestMouseButtonReleasedMessage(
      UnsafeNativeMethods.WindowMessages message, int wParam, MouseButtons button
    ) {
      IMouseMessageSubscriber subscriber = mockMouseSubscriber();

      Expect.Once.On(subscriber).Method("MouseButtonReleased").With(
        NMock2.Is.EqualTo(button)
      );
      sendMessage(message, wParam << 16, 0);

      this.mockery.VerifyAllExpectationsHaveBeenMet();
    }