Esempio n. 1
0
        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);
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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]);
        }