File: System\Windows\Interop\MSGTests.cs
Web Access
Project: src\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\WindowsBase.Tests.csproj (WindowsBase.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace System.Windows.Interop.Tests;
 
public class MSGTests
{
    [Fact]
    public void Ctor_Default()
    {
        var msg = new MSG();
        Assert.Equal(IntPtr.Zero, msg.hwnd);
        Assert.Equal(0, msg.message);
        Assert.Equal(IntPtr.Zero, msg.wParam);
        Assert.Equal(IntPtr.Zero, msg.lParam);
        Assert.Equal(0, msg.time);
        Assert.Equal(0, msg.pt_x);
        Assert.Equal(0, msg.pt_y);
    }
 
    public static IEnumerable<object[]> IntPtr_TestData()
    {
        yield return new object[] { (IntPtr)(-1) };
        yield return new object[] { IntPtr.Zero };
        yield return new object[] { (IntPtr)1 };
    }
 
    [Theory]
    [MemberData(nameof(IntPtr_TestData))]
    public void hwnd_Set_GetReturnsExpected(IntPtr value)
    {
        var msg = new MSG
        {
            // Set.
            hwnd = value
        };
        Assert.Equal(value, msg.hwnd);
 
        // Set same.
        msg.hwnd = value;
        Assert.Equal(value, msg.hwnd);
    }
 
    [Theory]
    [InlineData(-1)]
    [InlineData(0)]
    [InlineData(1)]
    public void message_Set_GetReturnsExpected(int value)
    {
        var msg = new MSG
        {
            // Set.
            message = value
        };
        Assert.Equal(value, msg.message);
 
        // Set same.
        msg.message = value;
        Assert.Equal(value, msg.message);
    }
 
    [Theory]
    [MemberData(nameof(IntPtr_TestData))]
    public void wParam_Set_GetReturnsExpected(IntPtr value)
    {
        var msg = new MSG
        {
            // Set.
            wParam = value
        };
        Assert.Equal(value, msg.wParam);
 
        // Set same.
        msg.wParam = value;
        Assert.Equal(value, msg.wParam);
    }
 
    [Theory]
    [MemberData(nameof(IntPtr_TestData))]
    public void lParam_Set_GetReturnsExpected(IntPtr value)
    {
        var msg = new MSG
        {
            // Set.
            lParam = value
        };
        Assert.Equal(value, msg.lParam);
 
        // Set same.
        msg.lParam = value;
        Assert.Equal(value, msg.lParam);
    }
 
    [Theory]
    [InlineData(-1)]
    [InlineData(0)]
    [InlineData(1)]
    public void time_Set_GetReturnsExpected(int value)
    {
        var msg = new MSG
        {
            // Set.
            time = value
        };
        Assert.Equal(value, msg.time);
 
        // Set same.
        msg.time = value;
        Assert.Equal(value, msg.time);
    }
 
    [Theory]
    [InlineData(-1)]
    [InlineData(0)]
    [InlineData(1)]
    public void pt_x_Set_GetReturnsExpected(int value)
    {
        var msg = new MSG
        {
            // Set.
            pt_x = value
        };
        Assert.Equal(value, msg.pt_x);
 
        // Set same.
        msg.pt_x = value;
        Assert.Equal(value, msg.pt_x);
    }
 
    [Theory]
    [InlineData(-1)]
    [InlineData(0)]
    [InlineData(1)]
    public void pt_y_Set_GetReturnsExpected(int value)
    {
        var msg = new MSG
        {
            // Set.
            pt_y = value
        };
        Assert.Equal(value, msg.pt_y);
 
        // Set same.
        msg.pt_y = value;
        Assert.Equal(value, msg.pt_y);
    }
}