public void Test_IsMatch()
        {
            using (LogGroup logGroup = LogGroup.Start("Testing the PropertyFilter.IsMatch function.", NLog.LogLevel.Debug))
            {
                TestArticle article = new TestArticle();
                article.ID    = Guid.NewGuid();
                article.Title = "Test Title 1";

                TestArticle article2 = new TestArticle();
                article2.ID    = Guid.NewGuid();
                article2.Title = "Test Title 2";

                //DataAccess.Data.Saver.Save(article);
                //DataAccess.Data.Saver.Save(article2);

                PropertyFilter filter = (PropertyFilter)DataAccess.Data.CreateFilter(typeof(PropertyFilter));
                filter.Operator      = FilterOperator.Equal;
                filter.PropertyName  = "Title";
                filter.PropertyValue = article.Title;
                filter.AddType(typeof(TestArticle));


                bool isMatch = filter.IsMatch(article);
                Assert.IsTrue(isMatch, "The IsMatch function returned false when it should have been true.");
            }
        }
Ejemplo n.º 2
0
        public void Test_IsMatch_And_True()
        {
            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  = "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");
        }
Ejemplo n.º 3
0
        public void Test_IsMatch_Or_True_OneMatches()
        {
            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  = "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.IsTrue(group.IsMatch(article), "group failed when it should match");
        }
Ejemplo n.º 4
0
        public void Test_GetEntitiesByFilterGroup_EmptyGroup()
        {
            using (LogGroup logGroup = LogGroup.Start("Testing a simple query with the PropertyFilter.", NLog.LogLevel.Debug))
            {
                TestUser user = new TestUser();
                user.ID        = Guid.NewGuid();
                user.FirstName = "Test";
                user.LastName  = "User";
                user.Username  = "******";

                TestRole role = new TestRole();
                role.ID   = Guid.NewGuid();
                role.Name = "Test role";

                user.Roles = new TestRole[] { role };

                DataAccess.Data.Saver.Save(role);
                DataAccess.Data.Saver.Save(user);

                ReferenceFilter filter = (ReferenceFilter)DataAccess.Data.CreateReferenceFilter();
                filter.PropertyName       = "Roles";
                filter.ReferencedEntityID = role.ID;
                filter.ReferenceType      = role.GetType();
                filter.AddType(typeof(TestUser));

                PropertyFilter filter2 = (PropertyFilter)DataAccess.Data.CreatePropertyFilter();
                filter2.PropertyName  = "Username";
                filter2.PropertyValue = user.Username;
                filter2.AddType(typeof(TestUser));

                FilterGroup filterGroup = new FilterGroup();
                // Leave empty by not adding filters
                //filterGroup.Add(filter);
                //filterGroup.Add(filter2);

                IEntity[] found = (IEntity[])DataAccess.Data.Indexer.GetEntities(filterGroup);

                Assert.IsNotNull(found, "Null value returned");

                if (found != null)
                {
                    Assert.IsTrue(found.Length > 0, "No results found.");

                    if (found.Length > 0)
                    {
                        TestUser foundUser = (TestUser)found[0];

                        Assert.IsNotNull(foundUser, "foundUser == null");

                        Assert.AreEqual(user.ID, foundUser.ID, "The IDs don't match.");
                    }
                }
            }
        }
Ejemplo n.º 5
0
        public void Test_FilterGroup_And_Exclusion()
        {
            using (LogGroup logGroup = LogGroup.Start("Testing a filter group query with the AND operator.", NLog.LogLevel.Debug))
            {
                TestEntity e1 = new TestEntity();
                e1.Name = "Test E1";

                FilterGroup filterGroup = new FilterGroup();
                filterGroup.Operator = FilterGroupOperator.And;

                PropertyFilter filter1 = (PropertyFilter)DataAccess.Data.CreateFilter(typeof(PropertyFilter));
                filter1.PropertyName  = "Name";
                filter1.PropertyValue = e1.Name;
                filter1.AddType(typeof(TestEntity));

                PropertyFilter filter2 = (PropertyFilter)DataAccess.Data.CreateFilter(typeof(PropertyFilter));
                filter2.PropertyName  = "Name";
                filter2.PropertyValue = "Another value";
                filter2.AddType(typeof(TestEntity));

                filterGroup.Filters = new BaseFilter[] { filter1, filter2 };

                DataAccess.Data.Saver.Save(e1);

                IEntity[] found = (IEntity[])DataAccess.Data.Indexer.GetEntities(filterGroup);

                Assert.IsNotNull(found, "Null array returned.");

                Collection <TestEntity> foundList = new Collection <TestEntity>(found);

                if (found != null)
                {
                    Assert.AreEqual(0, foundList.Count, "Entity retrieved when it shouldn't have matched.");
                }


                DataAccess.Data.Deleter.Delete(e1);
            }
        }
        public void Test_IsMatch_Exclude()
        {
            using (LogGroup logGroup = LogGroup.Start("Testing the PropertyFilter.IsMatch function.", NLog.LogLevel.Debug))
            {
                TestArticle article = new TestArticle();
                article.ID = Guid.NewGuid();

                TestCategory category = new TestCategory();
                category.ID = Guid.NewGuid();


                PropertyFilter filter = (PropertyFilter)DataAccess.Data.CreateFilter(typeof(PropertyFilter));
                filter.Operator      = FilterOperator.Equal;
                filter.PropertyName  = "Title";
                filter.PropertyValue = "MISMATCH";                 // Should fail to match
                filter.AddType(typeof(TestArticle));



                bool isMatch = filter.IsMatch(article);
                Assert.IsFalse(isMatch, "The IsMatch function returned true when it should have been false.");
            }
        }
Ejemplo n.º 7
0
        public void Test_FilterGroup_Or()
        {
            using (LogGroup logGroup = LogGroup.Start("Testing a filter group query with the OR operator.", NLog.LogLevel.Debug))
            {
                TestEntity e1 = new TestEntity();
                e1.Name = "Test E1";

                FilterGroup filterGroup = new FilterGroup();
                filterGroup.Operator = FilterGroupOperator.Or;

                PropertyFilter filter1 = (PropertyFilter)DataAccess.Data.CreateFilter(typeof(PropertyFilter));
                filter1.PropertyName  = "Name";
                filter1.PropertyValue = e1.Name;
                filter1.AddType(typeof(TestEntity));

                PropertyFilter filter2 = (PropertyFilter)DataAccess.Data.CreateFilter(typeof(PropertyFilter));
                filter2.PropertyName  = "Name";
                filter2.PropertyValue = "Another value";
                filter2.AddType(typeof(TestEntity));

                filterGroup.Filters = new BaseFilter[] { filter1, filter2 };

                DataAccess.Data.Stores[typeof(TestEntity)].Saver.Save(e1);

                IEntity[] found = (IEntity[])DataAccess.Data.Indexer.GetEntities(filterGroup);

                Assert.IsNotNull(found, "Null value returned.");

                if (found != null)
                {
                    Assert.IsTrue(found.Length > 0, "No results found.");
                }


                DataAccess.Data.Deleter.Delete(e1);
            }
        }
Ejemplo n.º 8
0
        public void Test_GetEntitiesByPropertyFilter()
        {
            using (LogGroup logGroup = LogGroup.Start("Testing a simple query with the PropertyFilter.", NLog.LogLevel.Debug))
            {
                TestEntity e1 = new TestEntity();
                e1.Name = "Test E1";

                PropertyFilter filter = (PropertyFilter)DataAccess.Data.CreateFilter(typeof(PropertyFilter));
                filter.PropertyName  = "Name";
                filter.PropertyValue = e1.Name;
                filter.AddType(typeof(TestEntity));

                DataAccess.Data.Saver.Save(e1);

                IEntity[] found = (IEntity[])DataAccess.Data.Indexer.GetEntities(filter);

                Assert.IsNotNull(found, "Null value returned");

                if (found != null)
                {
                    Assert.IsTrue(found.Length > 0, "No results found.");
                }
            }
        }