فهرست منبع

add failing test for issue #4945

Andrey Kunchev 5 سال پیش
والد
کامیت
b8686877af
1فایلهای تغییر یافته به همراه33 افزوده شده و 0 حذف شده
  1. 33 0
      tests/Avalonia.Controls.UnitTests/Selection/InternalSelectionModelTests.cs

+ 33 - 0
tests/Avalonia.Controls.UnitTests/Selection/InternalSelectionModelTests.cs

@@ -232,6 +232,39 @@ namespace Avalonia.Controls.UnitTests.Selection
             Assert.Contains(nameof(target.SelectedItem), changed);
         }
 
+        [Fact]
+        public void Raises_Selection_Changed_On_Item_Move()
+        {
+            var items = new AvaloniaList<string>(new[] { "foo", "bar", "baz" });
+            var target = CreateTarget(source: items);
+
+            target.SelectedIndex = 1;
+
+            var changed = new List<string>();
+
+            target.PropertyChanged += (s, e) => changed.Add(e.PropertyName);
+
+            var oldSelectedIndex = target.SelectedIndex;
+            var oldSelectedItem = target.SelectedItem;
+
+
+            var sel = items[1];
+            var other = items[2];
+
+            items[2] = sel;
+            items[1] = other;
+
+            Assert.NotEqual(oldSelectedIndex, target.SelectedIndex);
+            Assert.NotEqual(oldSelectedItem, target.SelectedItem);
+
+            Assert.Equal(-1, target.SelectedIndex);
+            Assert.Equal(null, target.SelectedItem);
+
+            Assert.Contains(nameof(target.SelectedIndex), changed);
+            Assert.Contains(nameof(target.SelectedItem), changed);
+        }
+
+
         [Fact]
         public void Preserves_SelectedItem_On_Items_Reset()
         {