public void TestFilterIsMatch() { EqualFilter <int> filter = GetEqualFilter <int>(); CollectionViewSource cvs = new(); var source = Enum.GetValues <StateEnum>().Cast <int>().ToList(); 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); }; } var filtered = FilterPresenterTest.GetCollection(view); Assert.AreEqual(source.Count, filtered.Count); List <int> selected = new(new int[] { (int)StateEnum.State1, (int)StateEnum.State4 }); List <int> unselected = new(); filter.SelectedValuesChanged(addedItems: selected, removedItems: unselected); view.Refresh(); filtered = FilterPresenterTest.GetCollection(view); Assert.AreEqual(selected.Count, filtered.Count); Assert.AreEqual(selected[0], filtered[0]); Assert.AreEqual(selected[1], filtered[1]); }
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 compareFrom = StateEnum.State2; var compareTo = StateEnum.State3; var expected = Enum.GetValues <StateEnum>() .Where(st => st >= compareFrom & 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); RangeFilterInitializer initializer = new(); RangeFilter <int>? filter = initializer.TryCreateFilter(filterPresenter, nameof(StateItem.StateId)) as RangeFilter <int>; Assert.IsNotNull(filter); Assert.IsFalse(filter.IsActive); Assert.AreSame(filterPresenter, filter.FilterPresenter); Assert.AreEqual(view.Count, items.Count); filter.CompareTo = (int)compareTo; filter.CompareFrom = (int)compareFrom; 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 TryGetFilter() { #pragma warning disable CS8604 // Possible null reference argument. #pragma warning disable CS8602 // Dereference of a possibly null reference. var items = StateItem.All; ListCollectionView view = new(items); Assert.IsTrue(view.CanFilter); Assert.IsNotNull(view.ItemProperties); FilterPresenter?filterPresenter = FilterPresenter.Get(view); Assert.IsNotNull(filterPresenter); EqualFilterInitializer initializer = new(); EqualFilter? filter = initializer.TryCreateFilter(filterPresenter, nameof(StateItem.StateId)) as EqualFilter; Assert.IsNotNull(filter); Assert.IsFalse(filter.IsActive); Assert.AreSame(filterPresenter, filter.FilterPresenter); Assert.AreEqual(items.Count, view.Count); List <int> selected = new(new int[] { (int)StateEnum.State1, (int)StateEnum.State4 }); List <int> unselected = new(); filter.SelectedValuesChanged(addedItems: selected, removedItems: unselected); Assert.IsTrue(filter.IsActive); var filtered = FilterPresenterTest.GetCollection(view); Assert.AreEqual(selected.Count, filtered.Count); Assert.AreEqual(selected[0], ((StateItem)filtered[0]).StateId); Assert.AreEqual(selected[1], ((StateItem)filtered[1]).StateId); //filterPresenter.IsFilterActive = false; filtered = FilterPresenterTest.GetCollection(view); Assert.AreEqual(items.Count, filtered.Count); #pragma warning restore CS8602 // Dereference of a possibly null reference. #pragma warning restore CS8604 // Possible null reference argument. }
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; ListCollectionView view = new(items); Assert.IsTrue(view.CanFilter); Assert.IsNotNull(view.ItemProperties); FilterPresenter?filterPresenter = FilterPresenter.Get(view); Assert.IsNotNull(filterPresenter); StringFilterInitializer initializer = new(); StringFilter? filter = initializer.TryCreateFilter(filterPresenter, nameof(StateItem.StateText)) as StringFilter; Assert.IsNotNull(filter); Assert.IsFalse(filter.IsActive); Assert.AreSame(filterPresenter, filter.FilterPresenter); Assert.AreEqual(view.Count, items.Count); filter.Value = compareTo.ToString(); filter.Mode = StringFilterMode.Equals; var expected = Enum.GetValues <StateEnum>() .Where(st => st == compareTo) .Select(st => new StateItem(st)) .ToList(); Assert.IsTrue(filter.IsActive); var filtered = FilterPresenterTest.GetCollection(view); Assert.AreEqual(1, filtered.Count); Assert.AreEqual(expected[0].StateId, ((StateItem)filtered[0]).StateId); filter.Value = "4"; filter.Mode = StringFilterMode.EndsWith; compareTo = StateEnum.State4; expected = Enum.GetValues <StateEnum>() .Where(st => st == compareTo) .Select(st => new StateItem(st)) .ToList(); Assert.IsTrue(filter.IsActive); filtered = FilterPresenterTest.GetCollection(view); Assert.AreEqual(1, filtered.Count); Assert.AreEqual(expected[0].StateId, ((StateItem)filtered[0]).StateId); filter.Value = "St"; filter.Mode = StringFilterMode.StartsWith; expected = Enum.GetValues <StateEnum>() .Select(st => new StateItem(st)) .ToList(); Assert.IsTrue(filter.IsActive); 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 TestAvailableValues() { EqualFilter <int> filter = GetEqualFilter <int>(); var source = enumSource.ToList(); filter.AvailableValues = source; CollectionViewSource cvs = new(); cvs.Source = filter.AvailableValues; ICollectionView view = cvs.View; var currentView = FilterPresenterTest.GetCollection(view); Assert.AreEqual(source.Count, currentView.Count); }
public void TryGetFilter() { #pragma warning disable CS8604 // Possible null reference argument. #pragma warning disable CS8602 // Dereference of a possibly null reference. var items = FilterPresenterTest.GetCollection(StateItem.All); ListCollectionView view = new(items); FilterPresenter? filterPresenter = FilterPresenter.Get(view); Assert.IsNotNull(filterPresenter); EqualFilterInitializer initializer = new(); ObjectEqualFilter? filter = initializer.TryCreateFilter(filterPresenter, nameof(StateItem.Box)) as ObjectEqualFilter; Assert.IsNotNull(filter); Assert.IsFalse(filter.IsActive); Assert.AreSame(filterPresenter, filter.FilterPresenter); Assert.AreEqual(view.Count, items.Count); List <object?> selected = new(new object[] { StateEnum.State0, StateEnum.State4 }); List <object?> unselected = new(); filter.SelectedValuesChanged(addedItems: selected, removedItems: unselected); Assert.IsTrue(filter.IsActive); var filtered = FilterPresenterTest.GetCollection(view); Assert.AreEqual(selected.Count, filtered.Count); Assert.AreEqual(selected[0], ((StateItem)filtered[0]).Box); Assert.AreEqual(selected[1], ((StateItem)filtered[1]).Box); filter.IsActive = false; filtered = FilterPresenterTest.GetCollection(view); Assert.AreEqual(items.Count, filtered.Count); //selected.Clear(); selected.Add(null); ((StateItem)items[1]).Box = null; filter.SelectedValuesChanged(addedItems: selected, removedItems: unselected); Assert.IsTrue(filter.IsActive); //Assert.IsTrue(filterPresenter.IsFilterActive); filtered = FilterPresenterTest.GetCollection(view); Assert.AreEqual(3, filtered.Count); Assert.AreEqual(((StateItem)items[0]).Box, ((StateItem)filtered[0]).Box); Assert.AreEqual(((StateItem)items[1]).Box, ((StateItem)filtered[1]).Box); Assert.AreEqual(((StateItem)items[4]).Box, ((StateItem)filtered[2]).Box); #pragma warning restore CS8602 // Dereference of a possibly null reference. #pragma warning restore CS8604 // Possible null reference argument. }
public void TestAttach() { EqualFilter <int> filter = GetEqualFilter <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 = FilterPresenterTest.GetCollection(view); Assert.AreEqual(source.Count, filtered.Count); List <int> selected = new(new int[] { (int)StateEnum.State1, (int)StateEnum.State4 }); List <int> unselected = new(); filter.SelectedValuesChanged(addedItems: selected, removedItems: unselected); Assert.IsTrue(filter.IsActive); filtered = FilterPresenterTest.GetCollection(view); Assert.AreEqual(selected.Count, filtered.Count); Assert.AreEqual(selected[0], filtered[0]); Assert.AreEqual(selected[1], filtered[1]); }