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