using System.Drawing;
using TerminalGuiFluentTesting;
using TerminalGuiFluentTestingXunit;
using Xunit.Abstractions;
namespace IntegrationTests.FluentTests;
///
/// Integration tests for GuiTestContext mouse event handling (LeftClick, RightClick).
///
public class GuiTestContextMouseEventTests (ITestOutputHelper outputHelper)
{
private readonly TextWriter _out = new TestOutputWriter (outputHelper);
[Theory]
[ClassData (typeof (TestDrivers))]
public void EnqueueMouseEvent_Click_RaisesAccepting (TestDriver d)
{
var clickedCount = 0;
var button = new Button
{
X = 5,
Y = 5,
Text = "Click Me"
};
button.Accepting += (s, e) => clickedCount++;
using GuiTestContext context = With.A (40, 10, d, _out)
.Add (button)
.LeftClick (6, 6) // Click inside button (accounting for Window's border)
.AssertEqual (1, clickedCount);
}
[Theory]
[ClassData (typeof (TestDrivers))]
public void EnqueueMouseEvent_Click_TView_RaisesAccepting (TestDriver d)
{
var clickedCount = 0;
var button = new Button
{
X = 5,
Y = 5,
Text = "Click Me"
};
button.Accepting += (s, e) => clickedCount++;
using GuiTestContext context = With.A (40, 10, d, _out)
.Add (button)
.LeftClick