예제 #1
0
        public void Process_FiltersItemsWithCaseInsensitiveComparison()
        {
            StringEqualsFilter <GridModel>         filter     = new StringEqualsFilter <GridModel>();
            Expression <Func <GridModel, String> > expression = (model) => model.Name;

            filter.FilteredExpression = expression;
            filter.Value = "Test";

            IQueryable <GridModel> models = new[]
            {
                new GridModel {
                    Name = null
                },
                new GridModel {
                    Name = "Tes"
                },
                new GridModel {
                    Name = "test"
                },
                new GridModel {
                    Name = "Test"
                },
                new GridModel {
                    Name = "Test2"
                }
            }.AsQueryable();

            IQueryable expected = models.Where(model => model.Name != null && model.Name.ToUpper() == "TEST");
            IQueryable actual   = filter.Process(models);

            CollectionAssert.AreEqual(expected, actual);
        }
예제 #2
0
        public void Process_FiltersEmptyOrNullValues(String value)
        {
            StringEqualsFilter <GridModel>         filter     = new StringEqualsFilter <GridModel>();
            Expression <Func <GridModel, String> > expression = (model) => model.Name;

            filter.FilteredExpression = expression;
            filter.Value = value;

            IQueryable <GridModel> models = new[]
            {
                new GridModel {
                    Name = null
                },
                new GridModel {
                    Name = ""
                },
                new GridModel {
                    Name = "test"
                },
                new GridModel {
                    Name = "Test"
                },
                new GridModel {
                    Name = "Test2"
                }
            }.AsQueryable();

            IQueryable expected = models.Where(model => model.Name == null || model.Name == "");
            IQueryable actual   = filter.Process(models);

            CollectionAssert.AreEqual(expected, actual);
        }
예제 #3
0
        public void Apply_FiltersMultipleItems()
        {
            Expression <Func <GridModel, String?> > expression = (model) => model.Name;
            StringEqualsFilter filter = new StringEqualsFilter {
                Method = "equals", Values = new[] { "Test", "TES" }
            };

            IQueryable <GridModel> items = new[]
            {
                new GridModel {
                    Name = null
                },
                new GridModel {
                    Name = "Tes"
                },
                new GridModel {
                    Name = "TES"
                },
                new GridModel {
                    Name = "test"
                },
                new GridModel {
                    Name = "TEST"
                },
                new GridModel {
                    Name = "TEST2"
                }
            }.AsQueryable();

            IQueryable expected = items.Where(model => model.Name != null && (model.Name.ToUpper() == "TES" || model.Name.ToUpper() == "TEST"));
            IQueryable actual   = items.Where(expression, filter);

            Assert.Equal(expected, actual);
        }
예제 #4
0
        public void Apply_FiltersEmptyOrNullValues(String value)
        {
            Expression <Func <GridModel, String?> > expression = (model) => model.Name;
            StringEqualsFilter filter = new StringEqualsFilter {
                Method = "equals", Values = new[] { value }
            };

            IQueryable <GridModel> items = new[]
            {
                new GridModel {
                    Name = ""
                },
                new GridModel {
                    Name = null
                },
                new GridModel {
                    Name = "test"
                },
                new GridModel {
                    Name = "Test"
                },
                new GridModel {
                    Name = "Test2"
                }
            }.AsQueryable();

            IQueryable expected = items.Where(model => model.Name == null || model.Name == "");
            IQueryable actual   = items.Where(expression, filter);

            Assert.Equal(expected, actual);
        }
        public void Apply_FiltersItemsWithCaseInsensitiveComparison()
        {
            Expression <Func <GridModel, String> > expression = (model) => model.Name;
            StringEqualsFilter filter = new StringEqualsFilter();

            filter.Value = "Test";

            IQueryable <GridModel> items = new[]
            {
                new GridModel {
                    Name = null
                },
                new GridModel {
                    Name = "Tes"
                },
                new GridModel {
                    Name = "test"
                },
                new GridModel {
                    Name = "Test"
                },
                new GridModel {
                    Name = "Test2"
                }
            }.AsQueryable();

            IQueryable expected = items.Where(model => model.Name != null && model.Name.ToUpper() == "TEST");
            IQueryable actual   = Filter(items, filter.Apply(expression.Body), expression);

            Assert.Equal(expected, actual);
        }
        public void Apply_FiltersEmptyOrNullValues(String value)
        {
            Expression <Func <GridModel, String> > expression = (model) => model.Name;
            StringEqualsFilter filter = new StringEqualsFilter();

            filter.Value = value;

            IQueryable <GridModel> items = new[]
            {
                new GridModel {
                    Name = null
                },
                new GridModel {
                    Name = ""
                },
                new GridModel {
                    Name = "test"
                },
                new GridModel {
                    Name = "Test"
                },
                new GridModel {
                    Name = "Test2"
                }
            }.AsQueryable();

            IQueryable expected = items.Where(model => model.Name == null || model.Name == "");
            IQueryable actual   = Filter(items, filter.Apply(expression.Body), expression);

            Assert.Equal(expected, actual);
        }
예제 #7
0
        public void GetFilter_ReturnsFilter()
        {
            IGridColumn <GridModel> column = Substitute.For <IGridColumn <GridModel> >();
            Expression <Func <GridModel, String> > expression = (model) => "Test";

            column.Expression.Returns(expression);

            IGridFilter <GridModel> actual   = filters.GetFilter <GridModel>(column, "Equals", "Test");
            IGridFilter <GridModel> expected = new StringEqualsFilter <GridModel>();

            expected.FilteredExpression = column.Expression;
            expected.Type  = "Equals";
            expected.Value = "Test";

            Assert.AreEqual(expected.FilteredExpression, actual.FilteredExpression);
            Assert.AreEqual(expected.ProcessorType, actual.ProcessorType);
            Assert.AreEqual(expected.GetType(), actual.GetType());
            Assert.AreEqual(expected.Value, actual.Value);
            Assert.AreEqual(expected.Type, actual.Type);
        }
        public void Apply_FiltersItemsByIgnoringCase()
        {
            Expression<Func<GridModel, String>> expression = (model) => model.Name;
            StringEqualsFilter filter = new StringEqualsFilter();
            filter.Value = "Test";

            IQueryable<GridModel> items = new[]
            {
                new GridModel { Name = null },
                new GridModel { Name = "Tes" },
                new GridModel { Name = "test" },
                new GridModel { Name = "Test" },
                new GridModel { Name = "Test2" }
            }.AsQueryable();

            IQueryable expected = items.Where(model => model.Name != null && model.Name.ToUpper() == "TEST");
            IQueryable actual = Filter(items, filter.Apply(expression.Body), expression);

            Assert.Equal(expected, actual);
        }
        public void Apply_FiltersEmptyOrNullValues(String value)
        {
            Expression<Func<GridModel, String>> expression = (model) => model.Name;
            StringEqualsFilter filter = new StringEqualsFilter();
            filter.Value = value;

            IQueryable<GridModel> items = new[]
            {
                new GridModel { Name = null },
                new GridModel { Name = "" },
                new GridModel { Name = "test" },
                new GridModel { Name = "Test" },
                new GridModel { Name = "Test2" }
            }.AsQueryable();

            IQueryable expected = items.Where(model => model.Name == null || model.Name == "");
            IQueryable actual = Filter(items, filter.Apply(expression.Body), expression);

            Assert.Equal(expected, actual);
        }