public void TestFilterIsMatch() { int compareTo = (int)StateEnum.State3; var source = enumSource.ToList(); var expectedCollection = source.Where(v => v <= compareTo).ToArray(); LessOrEqualFilter <int> filter = GetLessOrEqualFilter <int>(); CollectionViewSource cvs = new(); cvs.Source = source; ICollectionView view = cvs.View; Assert.IsTrue(view.CanFilter); using (IDisposable defer = view.DeferRefresh()) { view.Filter = el => { BolapanControl.ItemsFilter.FilterEventArgs e = new(el); filter.IsMatch(null, e); return(e.Accepted); }; } Assert.IsFalse(filter.IsActive); var filtered = GetCollection(view); Assert.AreEqual(source.Count, filtered.Count); filter.CompareTo = compareTo; Assert.IsTrue(filter.IsActive); view.Refresh(); filtered = GetCollection(view); Assert.AreEqual(expectedCollection.Length, filtered.Count); for (int i = 0; i < expectedCollection.Length; i++) { Assert.AreEqual(expectedCollection[i], filtered[i]); } }
public void TryGetFilter() { #pragma warning disable CS8604 // Possible null reference argument. #pragma warning disable CS8602 // Dereference of a possibly null reference. var items = StateItem.All; var compareTo = StateEnum.State3; var expected = Enum.GetValues <StateEnum>() .Where(st => st <= compareTo) .Select(st => new StateItem(st)) .ToList(); ListCollectionView view = new(items); Assert.IsTrue(view.CanFilter); Assert.IsNotNull(view.ItemProperties); FilterPresenter?filterPresenter = FilterPresenter.Get(view); Assert.IsNotNull(filterPresenter); LessOrEqualFilterInitializer initializer = new(); LessOrEqualFilter <int>? filter = initializer.TryCreateFilter(filterPresenter, nameof(StateItem.StateId)) as LessOrEqualFilter <int>; Assert.IsNotNull(filter); Assert.IsFalse(filter.IsActive); Assert.AreSame(filterPresenter, filter.FilterPresenter); Assert.AreEqual(view.Count, items.Count); filter.CompareTo = (int)compareTo; Assert.IsTrue(filter.IsActive); var filtered = FilterPresenterTest.GetCollection(view); Assert.AreEqual(expected.Count, filtered.Count); Assert.AreEqual(expected[0].StateId, ((StateItem)filtered[0]).StateId); Assert.AreEqual(expected[^ 1].StateId, ((StateItem)filtered[^ 1]).StateId);
public void CTOR() { LessOrEqualFilter <int> filter = GetLessOrEqualFilter <int>(); Assert.IsNotNull(filter); Assert.AreEqual((int?)null, filter.CompareTo); Assert.IsFalse(filter.IsActive); filter.CompareTo = 4; Assert.IsTrue(filter.IsActive); filter.CompareTo = null; Assert.IsFalse(filter.IsActive); }
public void TestAttach() { LessOrEqualFilter <int> filter = GetLessOrEqualFilter <int>(); var source = enumSource.ToList(); var filterPresenter = FilterPresenter.Get(source); Assert.IsNotNull(filterPresenter); Assert.IsFalse(filter.IsActive); filter.Attach(filterPresenter); var view = filterPresenter.CollectionView; var filtered = GetCollection(view); Assert.AreEqual(source.Count, filtered.Count); filter.CompareTo = (int)StateEnum.State3; Assert.IsTrue(filter.IsActive); filtered = GetCollection(view); Assert.AreEqual(4, filtered.Count); Assert.AreEqual((int)StateEnum.State0, filtered[0]); Assert.AreEqual((int)StateEnum.State1, filtered[1]); Assert.AreEqual((int)StateEnum.State2, filtered[2]); Assert.AreEqual((int)StateEnum.State3, filtered[3]); }