diff --git a/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs b/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs index 12fc0a82ed..83b82eb1d4 100644 --- a/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs @@ -26,9 +26,36 @@ namespace Avalonia.Controls.UnitTests ItemsSource = new[] { "foo", "bar" }, }; + Assert.NotSame(target.ItemsSource, target.Items); Assert.Equal(target.ItemsSource, target.Items); } + [Fact] + public void Cannot_Set_ItemsSource_With_Items_Present() + { + var target = new ItemsControl + { + Template = GetTemplate(), + ItemTemplate = new FuncDataTemplate((_, __) => new Canvas()), + Items = { "foo", "bar" }, + }; + + Assert.Throws(() => target.ItemsSource = new[] { "baz" }); + } + + [Fact] + public void Cannot_Modify_Items_When_ItemsSource_Set() + { + var target = new ItemsControl + { + Template = GetTemplate(), + ItemTemplate = new FuncDataTemplate((_, __) => new Canvas()), + ItemsSource = Array.Empty(), + }; + + Assert.Throws(() => target.Items.Add("foo")); + } + [Fact] public void Should_Use_ItemTemplate_To_Create_Control() {