From 76de096069336d43ea81bbe52ecc6b34a62d8e37 Mon Sep 17 00:00:00 2001 From: hadashiA Date: Thu, 15 Feb 2024 14:17:38 +0900 Subject: [PATCH] Add test --- .../ToNotifyCollectionChangedTest.cs | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/ObservableCollections.Tests/ToNotifyCollectionChangedTest.cs diff --git a/tests/ObservableCollections.Tests/ToNotifyCollectionChangedTest.cs b/tests/ObservableCollections.Tests/ToNotifyCollectionChangedTest.cs new file mode 100644 index 0000000..746edb6 --- /dev/null +++ b/tests/ObservableCollections.Tests/ToNotifyCollectionChangedTest.cs @@ -0,0 +1,57 @@ +namespace ObservableCollections.Tests; + +public class ToNotifyCollectionChangedTest +{ + [Fact] + public void ToNotifyCollectionChanged() + { + var list = new ObservableList(); + + list.Add(10); + list.Add(50); + list.Add(30); + + var notify = list.CreateView(x => $"${x}").ToNotifyCollectionChanged(); + + list.Add(20); + list.Add(40); + + using var e = notify.GetEnumerator(); + e.MoveNext().Should().BeTrue(); + e.Current.Should().Be("$10"); + e.MoveNext().Should().BeTrue(); + e.Current.Should().Be("$20"); + e.MoveNext().Should().BeTrue(); + e.Current.Should().Be("$30"); + e.MoveNext().Should().BeTrue(); + e.Current.Should().Be("$40"); + e.MoveNext().Should().BeTrue(); + e.Current.Should().Be("$50"); + e.MoveNext().Should().BeFalse(); + } + + [Fact] + public void ToNotifyCollectionChanged_Filter() + { + var list = new ObservableList(); + + list.Add(1); + list.Add(2); + list.Add(5); + list.Add(3); + + var view = list.CreateView(x => $"${x}"); + var notify = view.ToNotifyCollectionChanged(); + + view.AttachFilter((value, view) => value % 2 == 0); + + list.Add(4); + + using var e = notify.GetEnumerator(); + e.MoveNext().Should().BeTrue(); + e.Current.Should().Be("$2"); + e.MoveNext().Should().BeTrue(); + e.Current.Should().Be("$4"); + e.MoveNext().Should().BeFalse(); + } +} \ No newline at end of file