public void Selected_Item_Changes_To_NextAvailable_Item_If_SelectedItem_Is_Removed_From_Middle() { var items = new ObservableCollection <string> { "Foo", "Bar", "FooBar" }; var target = new Carousel { Template = new FuncControlTemplate <Carousel>(CreateTemplate), Items = items, IsVirtualized = false }; target.ApplyTemplate(); target.Presenter.ApplyTemplate(); target.SelectedIndex = 1; items.RemoveAt(1); Assert.Equal(1, target.SelectedIndex); Assert.Equal("FooBar", target.SelectedItem); }
public void Selected_Index_Is_Maintained_Carousel_Created_With_Non_Zero_SelectedIndex() { var items = new ObservableCollection <string> { "Foo", "Bar", "FooBar" }; var target = new Carousel { Template = new FuncControlTemplate <Carousel>(CreateTemplate), Items = items, IsVirtualized = false, SelectedIndex = 2 }; target.ApplyTemplate(); target.Presenter.ApplyTemplate(); Assert.Equal("FooBar", target.SelectedItem); var child = target.GetVisualDescendants().LastOrDefault(); Assert.IsType <TextBlock>(child); Assert.Equal("FooBar", ((TextBlock)child).Text); }
public void Selected_Item_Changes_To_Next_First_Item_When_Item_Removed_From_Beggining_Of_List() { var items = new ObservableCollection <string> { "Foo", "Bar", "FooBar" }; var target = new Carousel { Template = new FuncControlTemplate <Carousel>(CreateTemplate), Items = items, IsVirtualized = false }; target.ApplyTemplate(); target.Presenter.ApplyTemplate(); Assert.Single(target.GetLogicalChildren()); var child = target.GetLogicalChildren().Single(); Assert.IsType <TextBlock>(child); Assert.Equal("Foo", ((TextBlock)child).Text); items.RemoveAt(0); child = target.GetLogicalChildren().Single(); Assert.IsType <TextBlock>(child); Assert.Equal("Bar", ((TextBlock)child).Text); }
public void Selected_Item_Changes_To_First_Item_When_Items_Property_Changes() { var items = new ObservableCollection <string> { "Foo", "Bar", "FooBar" }; var target = new Carousel { Template = new FuncControlTemplate <Carousel>(CreateTemplate), Items = items, IsVirtualized = false }; target.ApplyTemplate(); target.Presenter.ApplyTemplate(); Assert.Equal(3, target.GetLogicalChildren().Count()); var child = GetContainerTextBlock(target.GetLogicalChildren().First()); Assert.Equal("Foo", child.Text); var newItems = items.ToList(); newItems.RemoveAt(0); target.Items = newItems; child = GetContainerTextBlock(target.GetLogicalChildren().First()); Assert.Equal("Bar", child.Text); }
public void Selected_Index_Changes_To_None_When_Items_Assigned_Null() { var items = new ObservableCollection <string> { "Foo", "Bar", "FooBar" }; var target = new Carousel { Template = new FuncControlTemplate <Carousel>(CreateTemplate), Items = items, IsVirtualized = false }; target.ApplyTemplate(); target.Presenter.ApplyTemplate(); Assert.Equal(3, target.GetLogicalChildren().Count()); var child = GetContainerTextBlock(target.GetLogicalChildren().First()); Assert.Equal("Foo", child.Text); target.Items = null; var numChildren = target.GetLogicalChildren().Count(); Assert.Equal(0, numChildren); Assert.Equal(-1, target.SelectedIndex); }
public void Should_Not_Remove_NonCurrent_Page_When_IsVirtualized_False() { var target = new Carousel { Template = new FuncControlTemplate <Carousel>(CreateTemplate), Items = new[] { "foo", "bar" }, IsVirtualized = false, SelectedIndex = 0, }; target.ApplyTemplate(); target.Presenter.ApplyTemplate(); Assert.Single(target.ItemContainerGenerator.Containers); target.SelectedIndex = 1; Assert.Equal(2, target.ItemContainerGenerator.Containers.Count()); }
public void First_Item_Should_Be_Selected_By_Default() { var target = new Carousel { Template = new FuncControlTemplate <Carousel>(CreateTemplate), Items = new[] { "Foo", "Bar" } }; target.ApplyTemplate(); Assert.Equal(0, target.SelectedIndex); Assert.Equal("Foo", target.SelectedItem); }
public void Should_Remove_NonCurrent_Page_When_IsVirtualized_True() { var target = new Carousel { Template = new FuncControlTemplate<Carousel>(CreateTemplate), Items = new[] { "foo", "bar" }, IsVirtualized = true, SelectedIndex = 0, }; target.ApplyTemplate(); target.Presenter.ApplyTemplate(); Assert.Equal(1, target.ItemContainerGenerator.Containers.Count()); target.SelectedIndex = 1; Assert.Equal(1, target.ItemContainerGenerator.Containers.Count()); }
public void First_Item_Should_Be_Selected_By_Default() { var target = new Carousel { Template = new FuncControlTemplate<Carousel>(CreateTemplate), Items = new[] { "Foo", "Bar" } }; target.ApplyTemplate(); Assert.Equal(0, target.SelectedIndex); Assert.Equal("Foo", target.SelectedItem); }
public void LogicalChild_Should_Be_Selected_Item() { var target = new Carousel { Template = new FuncControlTemplate<Carousel>(CreateTemplate), Items = new[] { "Foo", "Bar" } }; target.ApplyTemplate(); Assert.Equal(1, target.GetLogicalChildren().Count()); var child = target.GetLogicalChildren().Single(); Assert.IsType<TextBlock>(child); Assert.Equal("Foo", ((TextBlock)child).Text); }
public void LogicalChild_Should_Be_Selected_Item() { var target = new Carousel { Template = new FuncControlTemplate <Carousel>(CreateTemplate), Items = new[] { "Foo", "Bar" } }; target.ApplyTemplate(); Assert.Equal(1, target.GetLogicalChildren().Count()); var child = target.GetLogicalChildren().Single(); Assert.IsType <TextBlock>(child); Assert.Equal("Foo", ((TextBlock)child).Text); }
public void LogicalChild_Should_Be_Selected_Item() { var target = new Carousel { Template = new FuncControlTemplate <Carousel>(CreateTemplate), Items = new[] { "Foo", "Bar" } }; target.ApplyTemplate(); target.Presenter.ApplyTemplate(); Assert.Single(target.GetLogicalChildren()); var child = GetContainerTextBlock(target.GetLogicalChildren().Single()); Assert.Equal("Foo", child.Text); }
public void Selected_Item_Changes_To_First_Item_When_Item_Added() { var items = new ObservableCollection <string>(); var target = new Carousel { Template = new FuncControlTemplate <Carousel>(CreateTemplate), Items = items, IsVirtualized = false }; target.ApplyTemplate(); target.Presenter.ApplyTemplate(); Assert.Equal(-1, target.SelectedIndex); Assert.Empty(target.GetLogicalChildren()); items.Add("Foo"); Assert.Equal(0, target.SelectedIndex); Assert.Single(target.GetLogicalChildren()); }
public void SelectedItem_Validation() { using (UnitTestApplication.Start(TestServices.MockThreadingInterface)) { var target = new Carousel { Template = new FuncControlTemplate <Carousel>(CreateTemplate), IsVirtualized = false }; target.ApplyTemplate(); target.Presenter.ApplyTemplate(); var exception = new System.InvalidCastException("failed validation"); var textObservable = new BehaviorSubject <BindingNotification>(new BindingNotification(exception, BindingErrorType.DataValidationError)); target.Bind(ComboBox.SelectedItemProperty, textObservable); Assert.True(DataValidationErrors.GetHasErrors(target)); Assert.True(DataValidationErrors.GetErrors(target).SequenceEqual(new[] { exception })); } }
public void Selected_Item_Changes_To_First_Item_When_Items_Property_Changes_And_Virtualized() { var items = new ObservableCollection <string> { "Foo", "Bar", "FooBar" }; var target = new Carousel { Template = new FuncControlTemplate <Carousel>(CreateTemplate), Items = items }; target.ApplyTemplate(); target.Presenter.ApplyTemplate(); Assert.Single(target.GetLogicalChildren()); var child = target.GetLogicalChildren().Single(); Assert.IsType <TextBlock>(child); Assert.Equal("Foo", ((TextBlock)child).Text); var newItems = items.ToList(); newItems.RemoveAt(0); target.Items = newItems; child = target.GetLogicalChildren().Single(); Assert.IsType <TextBlock>(child); Assert.Equal("Bar", ((TextBlock)child).Text); }