Browse Source

Add more tests for resetting InternalSelectionModel.

Always check that `WriteableSelectedItems` is correct - sometimes it's not it seems.
Steven Kirk 4 years ago
parent
commit
2c3f70bd07

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

@@ -97,6 +97,7 @@ namespace Avalonia.Controls.UnitTests.Selection
             target.WritableSelectedItems.Clear();
             target.WritableSelectedItems.Clear();
 
 
             Assert.Empty(target.SelectedIndexes);
             Assert.Empty(target.SelectedIndexes);
+            Assert.Empty(target.WritableSelectedItems);
         }
         }
 
 
         [Fact]
         [Fact]
@@ -123,6 +124,7 @@ namespace Avalonia.Controls.UnitTests.Selection
             target.WritableSelectedItems = null;
             target.WritableSelectedItems = null;
 
 
             Assert.Empty(target.SelectedIndexes);
             Assert.Empty(target.SelectedIndexes);
+            Assert.Empty(target.WritableSelectedItems);
         }
         }
 
 
         [Fact]
         [Fact]
@@ -182,6 +184,7 @@ namespace Avalonia.Controls.UnitTests.Selection
             target.Source = items;
             target.Source = items;
 
 
             Assert.Equal(1, target.SelectedIndex);
             Assert.Equal(1, target.SelectedIndex);
+            Assert.Equal(new[] { "bar" }, target.WritableSelectedItems);
         }
         }
 
 
         [Fact]
         [Fact]
@@ -203,6 +206,7 @@ namespace Avalonia.Controls.UnitTests.Selection
             items.Reset(new[] { "baz", "foo", "bar" });
             items.Reset(new[] { "baz", "foo", "bar" });
 
 
             Assert.Equal(2, target.SelectedIndex);
             Assert.Equal(2, target.SelectedIndex);
+            Assert.Equal(new[] { "bar" }, target.WritableSelectedItems);
         }
         }
 
 
         [Fact]
         [Fact]
@@ -227,6 +231,7 @@ namespace Avalonia.Controls.UnitTests.Selection
 
 
             Assert.Equal(-1, target.SelectedIndex);
             Assert.Equal(-1, target.SelectedIndex);
             Assert.Equal(null, target.SelectedItem);
             Assert.Equal(null, target.SelectedItem);
+            Assert.Empty(target.WritableSelectedItems);
 
 
             Assert.Contains(nameof(target.SelectedIndex), changed);
             Assert.Contains(nameof(target.SelectedIndex), changed);
             Assert.Contains(nameof(target.SelectedItem), changed);
             Assert.Contains(nameof(target.SelectedItem), changed);
@@ -246,6 +251,7 @@ namespace Avalonia.Controls.UnitTests.Selection
 
 
             Assert.Equal("foo", target.SelectedItem);
             Assert.Equal("foo", target.SelectedItem);
             Assert.Equal(1, target.SelectedIndex);
             Assert.Equal(1, target.SelectedIndex);
+            Assert.Equal(new[] { "foo" }, target.WritableSelectedItems);
         }
         }
 
 
         [Fact]
         [Fact]
@@ -257,6 +263,7 @@ namespace Avalonia.Controls.UnitTests.Selection
             target.Source = new[] { "baz", "foo", "bar" };
             target.Source = new[] { "baz", "foo", "bar" };
 
 
             Assert.Equal(2, target.SelectedIndex);
             Assert.Equal(2, target.SelectedIndex);
+            Assert.Equal(new[] { "bar" }, target.WritableSelectedItems);
         }
         }
 
 
         private static InternalSelectionModel CreateTarget(
         private static InternalSelectionModel CreateTarget(