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 TimePickerTests : ScopedTestBase { [Fact] public void SelectedTimeChanged_Should_Fire_When_SelectedTime_Set() { using (UnitTestApplication.Start(Services)) { bool handled = false; TimePicker timePicker = new TimePicker(); timePicker.SelectedTimeChanged += (s, e) => { handled = true; }; TimeSpan value = TimeSpan.FromHours(10); timePicker.SelectedTime = value; Threading.Dispatcher.UIThread.RunJobs(null, TestContext.Current.CancellationToken); Assert.True(handled); } } [Fact] public void Using_24HourClock_Should_Hide_Period() { using (UnitTestApplication.Start(Services)) { TimePicker timePicker = new TimePicker() { ClockIdentifier = "12HourClock", Template = CreateTemplate() }; timePicker.ApplyTemplate(); var desc = timePicker.GetVisualDescendants(); Assert.True(desc.Count() > 1);//Should be layoutroot grid & button var button = Assert.IsAssignableFrom