public void Test_IsMatch_2SubGroups_True() { TestArticle article = new TestArticle(); article.ID = Guid.NewGuid(); article.Title = "Article1"; // Outer group FilterGroup group = new FilterGroup(); group.Operator = FilterGroupOperator.And; // BOTH child groups MUST match FilterGroup subGroup1 = new MockMatchingFilterGroup(); FilterGroup subGroup2 = new MockMatchingFilterGroup(); group.Add(subGroup1); group.Add(subGroup2); Assert.IsTrue(subGroup1.IsMatch(article), "First sub group doesn't match when it should."); Assert.IsTrue(subGroup2.IsMatch(article), "Second sub group doesn't match when it should."); Assert.IsTrue(group.IsMatch(article), "Entire group failed to match."); }
public void Test_IsMatch_And_False() { TestArticle article = new TestArticle(); article.ID = Guid.NewGuid(); article.Title = "Article1"; FilterGroup group = new FilterGroup(); PropertyFilter filter1 = new PropertyFilter(); filter1.AddType(typeof(TestArticle)); filter1.PropertyName = "Title"; filter1.PropertyValue = article.Title; Assert.IsTrue(filter1.IsMatch(article), "filter1 failed to match article when it should."); PropertyFilter filter2 = new PropertyFilter(); filter2.AddType(typeof(TestArticle)); filter2.PropertyName = "Title"; filter2.PropertyValue = "MISMATCH"; // This one should fail Assert.IsFalse(filter2.IsMatch(article), "filter2 matched when it should fail."); group.Add(filter1); group.Add(filter2); Assert.IsFalse(group.IsMatch(article), "group matched when it should fail"); }
public void Test_IsMatch_Or_True_BothMatch() { TestArticle article = new TestArticle(); article.ID = Guid.NewGuid(); article.Title = "Article1"; FilterGroup group = new FilterGroup(); group.Operator = FilterGroupOperator.Or; PropertyFilter filter1 = new PropertyFilter(); filter1.AddType(typeof(TestArticle)); filter1.PropertyName = "Title"; filter1.PropertyValue = article.Title; Assert.IsTrue(filter1.IsMatch(article), "filter1 failed to match article when it should."); PropertyFilter filter2 = new PropertyFilter(); filter2.AddType(typeof(TestArticle)); filter2.PropertyName = "ID"; filter2.PropertyValue = article.ID; Assert.IsTrue(filter2.IsMatch(article), "filter2 failed to match article when it should."); group.Add(filter1); group.Add(filter2); Assert.IsTrue(group.IsMatch(article), "group failed to match when it should"); }
public void Test_IsMatch_EmptyGroup() { TestArticle article = new TestArticle(); article.ID = Guid.NewGuid(); article.Title = "Article1"; FilterGroup group = new FilterGroup(); Assert.IsTrue(group.IsMatch(article), "group failed to match when it should match"); }