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]);
            }
        }