public void BuildExpression_InnerSingleObjectWithCollectionFilter_ShouldMatchCount() { // Arrange var filter = new UserFilterBase { Books = new BookFilterBase { Title = "Normal" } }; var query = dummyData.AsQueryable(); // Act var filteredQuery = query.ApplyFilter(filter); Console.WriteLine(filteredQuery); var result = filteredQuery.ToList(); // Assert var actualResult = dummyData.Where(x => x.Books.Any(a => a.Title.Contains(filter.Books.Title, StringComparison.InvariantCultureIgnoreCase))).ToList(); Assert.True(result.Count == actualResult.Count); foreach (var item in actualResult) { Assert.Contains(item, actualResult); } }
public void BuildExpression_InnerSingleObjectWithSingleParameter_ShouldMatchCount(string givenName) { // Arrange var filterBase = new UserFilterBase { Preferences = new PreferencesFilterBase { GivenName = givenName } }; var query = dummyData.AsQueryable(); // Act var filteredQuery = query.ApplyFilter(filterBase); var result = filteredQuery.ToList(); // Assert var actualResult = dummyData.Where(x => x.Preferences.GivenName.EndsWith(filterBase.Preferences.GivenName)).ToList(); Assert.True(result.Count == actualResult.Count); foreach (var item in actualResult) { Assert.Contains(item, actualResult); } }
public void ApplyFilterTo_WithSingleField_ShouldMatchCount(List <User> dummyData) { // Arrange var filterBase = new UserFilterBase { Email = dummyData.FirstOrDefault().Email, }; IQueryable <User> query = dummyData.AsQueryable(); // Act var result = query.ApplyFilter(filterBase).ToList(); // Assert Assert.True(result.Count == dummyData.Count(x => x.Email == filterBase.Email)); }
public void BuildExpression_WithContainsString_ShouldMatchCount(List <User> dummyData) { // Arrange var partOfName = dummyData.FirstOrDefault()?.FullName?.Substring(0, 4); var filterBase = new UserFilterBase { FullName = partOfName, }; var query = dummyData.AsQueryable(); // Act var result = query.ApplyFilter(filterBase).ToList(); // Assert Assert.True(result.Count == dummyData.Count(x => x.FullName.Contains(filterBase.FullName, StringComparison.InvariantCultureIgnoreCase))); }
public void ApplyFilterTo_WithTwoField_ShouldMatchCount(List <User> dummyData) { // Arrange var filterBase = new UserFilterBase { Email = dummyData.FirstOrDefault().Email, IsActive = dummyData.FirstOrDefault().IsActive, }; IQueryable <User> query = dummyData.AsQueryable(); // Act filterBase.CombineWith = Enums.CombineType.And; var result = query.ApplyFilter(filterBase).ToList(); filterBase.CombineWith = Enums.CombineType.Or; var orResult = query.ApplyFilter(filterBase).ToList(); // Assert Assert.True(result.Count == dummyData.Count(x => x.Email == filterBase.Email && x.IsActive == filterBase.IsActive)); Assert.True(orResult.Count == dummyData.Count(x => x.Email == filterBase.Email || x.IsActive == filterBase.IsActive)); }
public void BuildExpression_WithSingleBooleanParameter_ShouldMatchCount(bool?isActive, List <User> dummyData) { // Arrange var filterBase = new UserFilterBase { IsActive = isActive }; var query = dummyData.AsQueryable(); // Act var result = query.ApplyFilter(filterBase).ToList(); // Assert Func <User, bool> condition = _ => true; if (isActive != null) { condition = x => x.IsActive == isActive; } Assert.True(result.Count == dummyData.Count(condition)); }