From e2fe94cafb3aa45d667e611cb44a21f06278b255 Mon Sep 17 00:00:00 2001 From: danwalmsley Date: Tue, 31 May 2016 16:03:57 +0100 Subject: [PATCH] Added test for removing last item in the list, when scrolled to end. --- ...emsPresenterTests_Virtualization_Simple.cs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs b/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs index 036ecdce6f..32cd0c2825 100644 --- a/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs +++ b/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs @@ -181,6 +181,31 @@ namespace Avalonia.Controls.UnitTests.Presenters Assert.Equal(expected, actual); } + [Fact] + public void Removing_last_item_when_visible_should_UpdateContainers() + { + var target = CreateTarget(itemCount: 20); + + target.ApplyTemplate(); + target.Measure(new Size(100, 195)); + target.Arrange(new Rect(0, 0, 100, 195)); + + ((ILogicalScrollable)target).Offset = new Vector(0, 5); + + var expected = Enumerable.Range(0, 20).Select(x => $"Item {x}").ToList(); + var items = (ObservableCollection)target.Items; + + Assert.Equal( + expected, + target.Panel.Children.Select(x => x.DataContext)); + + items.Remove(items.Last()); + expected.Remove(expected.Last()); + + var actual = target.Panel.Children.Select(x => x.DataContext).ToList(); + Assert.Equal(expected, actual); + } + public class WithContainers { [Fact]