From 183fed8985287500d3687f5980a5c01f4a2822bc Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Wed, 8 Mar 2023 15:34:50 +0100 Subject: [PATCH] Add more tests. One failing. --- .../ItemsControlTests.cs | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) 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() {