| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 | 
							- using System;
 
- using System.Linq;
 
- using Avalonia.Controls.Shapes;
 
- using Avalonia.Controls.Templates;
 
- using Avalonia.Platform;
 
- using Avalonia.UnitTests;
 
- using Avalonia.VisualTree;
 
- using Moq;
 
- using Xunit;
 
- namespace Avalonia.Controls.UnitTests
 
- {
 
-     public class TimePickerTests
 
-     {
 
-         [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();
 
-                 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
 
-                 Grid container = null;
 
-                 Assert.True(desc.ElementAt(1) is Button);
 
-                 container = (desc.ElementAt(1) as Button).Content as Grid;
 
-                 Assert.True(container != null);
 
-                 var periodTextHost = container.Children[4] as Border;
 
-                 Assert.True(periodTextHost != null);
 
-                 Assert.True(periodTextHost.IsVisible);
 
-                 timePicker.ClockIdentifier = "24HourClock";
 
-                 Assert.False(periodTextHost.IsVisible);
 
-             }
 
-         }
 
-         [Fact]
 
-         public void SelectedTime_null_Should_Use_Placeholders()
 
-         {
 
-             using (UnitTestApplication.Start(Services))
 
-             {
 
-                 TimePicker timePicker = new TimePicker()
 
-                 {
 
-                     Template = CreateTemplate()
 
-                 };
 
-                 timePicker.ApplyTemplate();
 
-                 var desc = timePicker.GetVisualDescendants();
 
-                 Assert.True(desc.Count() > 1);//Should be layoutroot grid & button
 
-                 Grid container = null;
 
-                 Assert.True(desc.ElementAt(1) is Button);
 
-                 container = (desc.ElementAt(1) as Button).Content as Grid;
 
-                 Assert.True(container != null);
 
-                 var hourTextHost = container.Children[0] as Border;
 
-                 Assert.True(hourTextHost != null);
 
-                 var hourText = hourTextHost.Child as TextBlock;
 
-                 var minuteTextHost = container.Children[2] as Border;
 
-                 Assert.True(minuteTextHost != null);
 
-                 var minuteText = minuteTextHost.Child as TextBlock;
 
-                 TimeSpan ts = TimeSpan.FromHours(10);
 
-                 timePicker.SelectedTime = ts;
 
-                 Assert.False(hourText.Text == "hour");
 
-                 Assert.False(minuteText.Text == "minute");
 
-                 timePicker.SelectedTime = null;
 
-                 Assert.True(hourText.Text == "hour");
 
-                 Assert.True(minuteText.Text == "minute");
 
-             }
 
-         }
 
-         private static TestServices Services => TestServices.MockThreadingInterface.With(
 
-             standardCursorFactory: Mock.Of<IStandardCursorFactory>());
 
-         private IControlTemplate CreateTemplate()
 
-         {
 
-             return new FuncControlTemplate((control, scope) =>
 
-             {
 
-                 var layoutRoot = new Grid
 
-                 {
 
-                     Name = "LayoutRoot"
 
-                 }.RegisterInNameScope(scope);
 
-                 //Skip contentpresenter
 
-                 var flyoutButton = new Button
 
-                 {
 
-                     Name = "FlyoutButton"
 
-                 }.RegisterInNameScope(scope);
 
-                 var contentGrid = new Grid
 
-                 {
 
-                     Name = "FlyoutButtonContentGrid"
 
-                 }.RegisterInNameScope(scope);
 
-                 var firstPickerHost = new Border
 
-                 {
 
-                     Name = "FirstPickerHost",
 
-                     Child = new TextBlock
 
-                     {
 
-                         Name = "HourTextBlock"
 
-                     }.RegisterInNameScope(scope)
 
-                 }.RegisterInNameScope(scope);
 
-                 Grid.SetColumn(firstPickerHost, 0);
 
-                 var secondPickerHost = new Border
 
-                 {
 
-                     Name = "SecondPickerHost",
 
-                     Child = new TextBlock
 
-                     {
 
-                         Name = "MinuteTextBlock"
 
-                     }.RegisterInNameScope(scope)
 
-                 }.RegisterInNameScope(scope);
 
-                 Grid.SetColumn(secondPickerHost, 2);
 
-                 var thirdPickerHost = new Border
 
-                 {
 
-                     Name = "ThirdPickerHost",
 
-                     Child = new TextBlock
 
-                     {
 
-                         Name = "PeriodTextBlock"
 
-                     }.RegisterInNameScope(scope)
 
-                 }.RegisterInNameScope(scope);
 
-                 Grid.SetColumn(thirdPickerHost, 4);
 
-                 var firstSpacer = new Rectangle
 
-                 {
 
-                     Name = "FirstColumnDivider"
 
-                 }.RegisterInNameScope(scope);
 
-                 Grid.SetColumn(firstSpacer, 1);
 
-                 var secondSpacer = new Rectangle
 
-                 {
 
-                     Name = "SecondColumnDivider"
 
-                 }.RegisterInNameScope(scope);
 
-                 Grid.SetColumn(secondSpacer, 3);
 
-                 contentGrid.Children.AddRange(new IControl[] { firstPickerHost, firstSpacer, secondPickerHost, secondSpacer, thirdPickerHost });
 
-                 flyoutButton.Content = contentGrid;
 
-                 layoutRoot.Children.Add(flyoutButton);
 
-                 return layoutRoot;
 
-             });
 
-         }
 
-     }
 
- }
 
 
  |