public void Apply_FilterMultipleItems() { StringNotEqualsFilter filter = new StringNotEqualsFilter { Method = "not-equals", Values = new[] { "tes", "Test" } }; Expression <Func <GridModel, String?> > expression = (model) => model.Name; IQueryable <GridModel> items = new[] { new GridModel { Name = "" }, 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() != "TES" && model.Name.ToUpper() != "TEST"); IQueryable actual = items.Where(expression, filter); Assert.Equal(expected, actual); }
public void Apply_FiltersItemsByIgnoringCase() { StringNotEqualsFilter filter = new StringNotEqualsFilter { Value = "Test" }; Expression <Func <GridModel, String> > expression = (model) => model.Name; IQueryable <GridModel> items = new[] { new GridModel { Name = "" }, 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_FiltersNotEmptyAndNotNullValues(String value) { StringNotEqualsFilter filter = new StringNotEqualsFilter { Method = "not-equals", Values = new[] { value } }; Expression <Func <GridModel, String?> > expression = (model) => model.Name; 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_FiltersNotEmptyAndNotNullValues(String value) { StringNotEqualsFilter filter = new StringNotEqualsFilter { Value = value }; Expression <Func <GridModel, String> > expression = (model) => model.Name; 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 = Filter(items, filter.Apply(expression.Body), expression); Assert.Equal(expected, actual); }