Updated testing for User32 wrapper classes

pull/390/head
David Hall 2023-04-10 15:29:35 -06:00
parent 0493dbd4a2
commit f4e78524ee
1 changed files with 16 additions and 1 deletions

View File

@ -5,6 +5,7 @@ using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using Vanara.Extensions;
using Vanara.InteropServices;
using static Vanara.PInvoke.Kernel32;
using static Vanara.PInvoke.User32;
@ -20,7 +21,7 @@ public partial class User32Tests
WindowClass wc = null;
Assert.DoesNotThrow(() => wc = new());
Assert.AreEqual(wc.wc.hInstance, (HINSTANCE)GetModuleHandle());
Assert.AreEqual(wc.wc.hInstance, HINSTANCE.NULL);
Assert.True(wc.Unregister());
Assert.DoesNotThrow(() => wc = new("MyCustomName"));
@ -29,11 +30,25 @@ public partial class User32Tests
Assert.DoesNotThrow(() => wc = WindowClass.MakeVisibleWindowClass("MyWindowClass", DefWindowProc));
Assert.AreEqual(wc.ClassName, "MyWindowClass");
Assert.AreEqual(wc.wc.hInstance, (HINSTANCE)GetModuleHandle());
Assert.AreNotEqual(wc.wc.hIcon, HICON.NULL);
Assert.AreNotEqual(wc.wc.hCursor, HCURSOR.NULL);
Assert.AreNotEqual(wc.wc.hbrBackground, HBRUSH.NULL);
}
[Test]
public void WindowClassCreateWinTest()
{
var _wndProc = new WindowProc(WndProc);
var _gcHandle = GCHandle.Alloc(_wndProc);
var windowClass = new WindowClass(null, HINSTANCE.NULL, _wndProc, hbrBkgd: HBRUSH.NULL);
var exStyles = WindowStylesEx.WS_EX_LAYERED | WindowStylesEx.WS_EX_NOACTIVATE | WindowStylesEx.WS_EX_TRANSPARENT | WindowStylesEx.WS_EX_NOREDIRECTIONBITMAP;
var styles = WindowStyles.WS_CLIPCHILDREN | WindowStyles.WS_POPUP | WindowStyles.WS_CLIPSIBLINGS;
Assert.That(CreateWindowEx(exStyles, windowClass.ClassName, "Test Window", styles), ResultIs.ValidHandle);
}
private static IntPtr WndProc(HWND hwnd, uint uMsg, IntPtr wParam, IntPtr lParam) => DefWindowProc(hwnd, uMsg, wParam, lParam);
[Test]
public void WindowClassCreateTest()
{