예제 #1
0
        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.");
        }
예제 #2
0
        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");
        }
예제 #3
0
        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");
        }
예제 #4
0
        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");
        }