This commit is contained in:
hadashiA 2024-02-15 14:17:38 +09:00
parent e2dcbd804b
commit 76de096069

View File

@ -0,0 +1,57 @@
namespace ObservableCollections.Tests;
public class ToNotifyCollectionChangedTest
{
[Fact]
public void ToNotifyCollectionChanged()
{
var list = new ObservableList<int>();
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<int>();
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();
}
}