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); }
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); }
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); }
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); }
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); }