Exemplo n.º 1
0
        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]);
        }
Exemplo n.º 2
0
        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.
        }
Exemplo n.º 4
0
        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);
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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.
        }
Exemplo n.º 7
0
        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]);
        }