73 lines
2.2 KiB
C#
73 lines
2.2 KiB
C#
using Avalonia;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Headless;
|
|
using Avalonia.Headless.XUnit;
|
|
using Avalonia.Input;
|
|
using Avalonia.Threading;
|
|
using Ursa.Controls;
|
|
|
|
namespace HeadlessTest.Ursa.Controls.DateTimePicker;
|
|
|
|
public class CalendarDayButtonTests
|
|
{
|
|
[AvaloniaFact]
|
|
public void OnPointerReleased_RaisesDateSelectedEvent()
|
|
{
|
|
Window window = new Window();
|
|
var button = new CalendarDayButton();
|
|
var date = new DateTime(2023, 5, 15);
|
|
button.DataContext = date;
|
|
window.Content = button;
|
|
window.Show();
|
|
Dispatcher.UIThread.RunJobs();
|
|
int eventRaised = 0;
|
|
DateTime? eventContext = null;
|
|
|
|
void OnMouseClick(object? sender, CalendarDayButtonEventArgs args)
|
|
{
|
|
eventRaised++;
|
|
eventContext = args.Date;
|
|
}
|
|
|
|
button.DateSelected += OnMouseClick;
|
|
window.MouseUp(new Point(10, 10), MouseButton.Left);
|
|
Assert.Equal(1, eventRaised);
|
|
Assert.Equal(date, eventContext);
|
|
button.DateSelected -= OnMouseClick;
|
|
eventContext = null;
|
|
window.MouseUp(new Point(10, 10), MouseButton.Left);
|
|
Assert.Null(eventContext);
|
|
Assert.Equal(1, eventRaised);
|
|
}
|
|
|
|
[AvaloniaFact]
|
|
public void OnPointerEntered_RaisesDatePreviewedEvent()
|
|
{
|
|
Window window = new Window();
|
|
var button = new CalendarDayButton();
|
|
var date = new DateTime(2023, 5, 15);
|
|
button.DataContext = date;
|
|
window.Content = button;
|
|
window.Show();
|
|
Dispatcher.UIThread.RunJobs();
|
|
int eventRaised = 0;
|
|
DateTime? eventContext = null;
|
|
|
|
void OnMouseEnter(object? sender, CalendarDayButtonEventArgs args)
|
|
{
|
|
eventRaised++;
|
|
eventContext = args.Date;
|
|
}
|
|
|
|
button.DatePreviewed += OnMouseEnter;
|
|
window.MouseMove(new Point(10, 10));
|
|
Assert.Equal(1, eventRaised);
|
|
Assert.Equal(date, eventContext);
|
|
window.MouseMove(new Point(100, 100));
|
|
button.DatePreviewed -= OnMouseEnter;
|
|
eventContext = null;
|
|
window.MouseMove(new Point(10, 10));
|
|
Assert.Null(eventContext);
|
|
Assert.Equal(1, eventRaised);
|
|
}
|
|
} |