예제 #1
0
        public void Not_Null_And_StartsWith()
        {
            var filter  = new CompositeFilter <MyFilteredItem>();
            var filterA = new PropertyFilter <MyFilteredItem>("MyString", PredicateOperator.IsNotEqual, null);
            var filterB = new PropertyFilter <MyFilteredItem>("MyString", PredicateOperator.StartsWith, "item");

            filter.AddFilter(filterA);
            filter.AddFilter(filterB);
            filter.Refresh();

            Assert.AreEqual(false, filter.Filter(new MyFilteredItem {
                MyString = "Value A"
            }));
            Assert.AreEqual(false, filter.Filter(new MyFilteredItem())); // passes null
            Assert.AreEqual(true, filter.Filter(new MyFilteredItem {
                MyString = "Item B"
            }));
        }
예제 #2
0
        public void With_Logical_Or()
        {
            var filter  = new CompositeFilter <MyFilteredItem>(LogicalOperator.Or);
            var filterA = new PropertyFilter <MyFilteredItem>("MyString", PredicateOperator.IsEqual, "Value A");
            var filterB = new PropertyFilter <MyFilteredItem>("MyString", PredicateOperator.IsEqual, "Value B");

            filter.AddFilter(filterA);
            filter.AddFilter(filterB);
            filter.Refresh();

            Assert.AreEqual(true, filter.Filter(new MyFilteredItem {
                MyString = "Value A"
            }));
            Assert.AreEqual(false, filter.Filter(new MyFilteredItem())); // passes null
            Assert.AreEqual(true, filter.Filter(new MyFilteredItem {
                MyString = "Value B"
            }));
        }