using System; using System.Linq; using System.Reactive.Subjects; using Avalonia.Controls.Primitives; using Avalonia.Controls.Shapes; using Avalonia.Controls.Templates; using Avalonia.Data; using Avalonia.Harfbuzz; using Avalonia.Headless; using Avalonia.Platform; using Avalonia.Threading; using Avalonia.UnitTests; using Avalonia.VisualTree; using Moq; using Xunit; namespace Avalonia.Controls.UnitTests { public class DatePickerTests : ScopedTestBase { [Fact] public void SelectedDateChanged_Should_Fire_When_SelectedDate_Set() { using (UnitTestApplication.Start(Services)) { bool handled = false; DatePicker datePicker = new DatePicker(); datePicker.SelectedDateChanged += (s, e) => { handled = true; }; DateTimeOffset value = new DateTimeOffset(2000, 10, 10, 0, 0, 0, TimeSpan.Zero); datePicker.SelectedDate = value; Threading.Dispatcher.UIThread.RunJobs(null, TestContext.Current.CancellationToken); Assert.True(handled); } } [Fact] public void DayVisible_False_Should_Hide_Day() { using (UnitTestApplication.Start(Services)) { DatePicker datePicker = new DatePicker { Template = CreateTemplate(), DayVisible = false }; datePicker.ApplyTemplate(); Threading.Dispatcher.UIThread.RunJobs(null, TestContext.Current.CancellationToken); var desc = datePicker.GetVisualDescendants(); Assert.True(desc.Count() > 1);//Should be layoutroot grid & button TextBlock? dayText = null; var button = Assert.IsAssignableFrom