public void FilterByNumber(object filter, string type, params int[] expectedIds) { var users = new[] { new User { Id = 1, Age = 22 }, new User { Id = 2, Age = 55 }, new User { Id = 3, Age = 18 } }; _dbContext.Users.AddRange(users); _dbContext.SaveChanges(); var query = new GetRowsParams { StartRow = 0, EndRow = 10, FilterModel = new Dictionary <string, FilterModel> { { "age", new FilterModel { Filter = filter, Type = type, FilterType = FilterModelFilterType.Number } } } }; var result = _dbContext.Users.GetInfiniteRowModelBlock(query); Assert.Equal(expectedIds.Length, result.RowsThisBlock.Count()); Assert.True(result.RowsThisBlock.All(r => expectedIds.Contains(r.Id))); }
public void FilterByText(string filter, string type, params int[] expectedIds) { var users = new[] { new User { Id = 1, FullName = "Ala Kowalska" }, new User { Id = 2, FullName = "Jan Kowalski" }, new User { Id = 3, FullName = "Ala Nowak" } }; _dbContext.Users.AddRange(users); _dbContext.SaveChanges(); var query = new GetRowsParams { StartRow = 0, EndRow = 10, FilterModel = new Dictionary <string, FilterModel> { { "fullName", new FilterModel { Filter = filter, Type = type, FilterType = FilterModelFilterType.Text } } } }; var result = _dbContext.Users.GetInfiniteRowModelBlock(query); Assert.Equal(expectedIds.Length, result.RowsThisBlock.Count()); Assert.True(result.RowsThisBlock.All(r => expectedIds.Contains(r.Id))); }
public void FilterByDate(string filter, string type, params int[] expectedIds) { var users = new[] { new User { Id = 1, RegisteredOn = new DateTime(2020, 5, 11) }, new User { Id = 2, RegisteredOn = new DateTime(2019, 7, 4) }, new User { Id = 3, RegisteredOn = new DateTime(2010, 5, 13) } }; _dbContext.Users.AddRange(users); _dbContext.SaveChanges(); var query = new GetRowsParams { StartRow = 0, EndRow = 10, FilterModel = new Dictionary <string, FilterModel> { { "registeredOn", new FilterModel { DateFrom = filter, Type = type, FilterType = FilterModelFilterType.Date } } } }; var result = _dbContext.Users.GetInfiniteRowModelBlock(query); Assert.Equal(expectedIds.Length, result.RowsThisBlock.Count()); Assert.True(result.RowsThisBlock.All(r => expectedIds.Contains(r.Id))); }
public void FilterByBoolean(bool filter, string type, params int[] expectedIds) { var users = new[] { new User { Id = 1, IsVerified = true }, new User { Id = 2, IsVerified = true }, new User { Id = 3, IsVerified = false } }; _dbContext.Users.AddRange(users); _dbContext.SaveChanges(); var query = new GetRowsParams { StartRow = 0, EndRow = 10, FilterModel = new Dictionary <string, FilterModel> { { "isVerified", new FilterModel { Filter = filter, Type = type, FilterType = FilterModelFilterType.Boolean } } } }; var result = _dbContext.Users.GetInfiniteRowModelBlock(query); Assert.Equal(expectedIds.Length, result.RowsThisBlock.Count()); Assert.True(result.RowsThisBlock.All(r => expectedIds.Contains(r.Id))); }
public void ParseFromJson() { var users = new[] { new User { Id = 1, FullName = "Ala Nowak", Age = 28, IsVerified = true, RegisteredOn = new DateTime(2020, 5, 11) }, new User { Id = 2, FullName = "Ada Kowalska", Age = 22, IsVerified = false, RegisteredOn = new DateTime(2019, 5, 11) }, new User { Id = 3, FullName = "Jan Kowalczyk", Age = 33, IsVerified = false, RegisteredOn = new DateTime(2018, 5, 11) }, new User { Id = 4, FullName = "Andrzej Nowak", Age = 15, IsVerified = true, RegisteredOn = new DateTime(2017, 5, 11) }, new User { Id = 5, FullName = "Jan Nowak", Age = 34, IsVerified = true, RegisteredOn = new DateTime(2015, 5, 11) } }; _dbContext.Users.AddRange(users); _dbContext.SaveChanges(); var query = new GetRowsParams { StartRow = 0, EndRow = 3, SortModel = new[] { new SortModel { ColId = "fullName", Sort = SortModelSortDirection.Ascending } }, FilterModel = new Dictionary <string, FilterModel> { { "fullName", new FilterModel { Filter = "Ala", Type = FilterModelType.Contains, FilterType = FilterModelFilterType.Text } }, { "age", new FilterModel { Filter = 28, Type = FilterModelType.Equals, FilterType = FilterModelFilterType.Number } }, { "isVerified", new FilterModel { Filter = true, Type = FilterModelType.Equals, FilterType = FilterModelFilterType.Boolean } }, { "registeredOn", new FilterModel { DateFrom = "2020-05-08 00:00:00", Type = FilterModelType.GreaterThan, FilterType = FilterModelFilterType.Date } }, } }; var queryJson = JsonSerializer.Serialize(query, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }); var result = _dbContext.Users.GetInfiniteRowModelBlock(queryJson); Assert.Equal(1, result.RowsThisBlock.Single().Id); }
public void FilterByMultipleConditions(string filter1, string filter2, string filterOperator, params int[] expectedIds) { var users = new[] { new User { Id = 1, FullName = "Ada Kowalska" }, new User { Id = 2, FullName = "Janek Nowak" }, new User { Id = 3, FullName = "Ada Kowalczyk" } }; _dbContext.Users.AddRange(users); _dbContext.SaveChanges(); var query = new GetRowsParams { StartRow = 0, EndRow = 10, FilterModel = new Dictionary <string, FilterModel> { { "fullName", new FilterModel { FilterType = FilterModelFilterType.Text, Operator = filterOperator, Condition1 = new FilterModel { FilterType = FilterModelFilterType.Text, Type = FilterModelType.Contains, Filter = filter1 }, Condition2 = new FilterModel { FilterType = FilterModelFilterType.Text, Type = FilterModelType.Contains, Filter = filter2 } } }, } }; var result = _dbContext.Users.GetInfiniteRowModelBlock(query); Assert.Equal(expectedIds.Length, result.RowsThisBlock.Count()); Assert.True(result.RowsThisBlock.All(r => expectedIds.Contains(r.Id))); }
public void Page() { var users = new[] { new User { FullName = "1" }, new User { FullName = "2" }, new User { FullName = "3" }, new User { FullName = "4" }, new User { FullName = "5" } }; _dbContext.Users.AddRange(users); _dbContext.SaveChanges(); var query = new GetRowsParams { StartRow = 0, EndRow = 3, SortModel = new[] { new SortModel { ColId = "fullName", Sort = SortModelSortDirection.Ascending } } }; var page1 = _dbContext.Users.GetInfiniteRowModelBlock(query); Assert.Null(page1.LastRow); Assert.Equal(3, page1.RowsThisBlock.Count()); Assert.Contains(page1.RowsThisBlock, u => u.FullName == "1"); Assert.Contains(page1.RowsThisBlock, u => u.FullName == "2"); Assert.Contains(page1.RowsThisBlock, u => u.FullName == "3"); query.StartRow = 3; query.EndRow = 6; var page2 = _dbContext.Users.GetInfiniteRowModelBlock(query); Assert.Equal(5, page2.LastRow); Assert.Equal(2, page2.RowsThisBlock.Count()); Assert.Contains(page2.RowsThisBlock, u => u.FullName == "4"); Assert.Contains(page2.RowsThisBlock, u => u.FullName == "5"); }
public void FilterByDateRange() { var users = new[] { new User { Id = 1, RegisteredOn = new DateTime(2020, 5, 11) }, new User { Id = 2, RegisteredOn = new DateTime(2019, 7, 4) }, new User { Id = 3, RegisteredOn = new DateTime(2010, 5, 13) } }; _dbContext.Users.AddRange(users); _dbContext.SaveChanges(); var query = new GetRowsParams { StartRow = 0, EndRow = 10, FilterModel = new Dictionary <string, FilterModel> { { "registeredOn", new FilterModel { DateFrom = "2018-07-04 00:00:00", DateTo = "2023-07-04 00:00:00", Type = FilterModelType.InRange, FilterType = FilterModelFilterType.Date } } } }; var result = _dbContext.Users.GetInfiniteRowModelBlock(query); Assert.Contains(result.RowsThisBlock, u => u.Id == 1); Assert.Contains(result.RowsThisBlock, u => u.Id == 2); Assert.DoesNotContain(result.RowsThisBlock, u => u.Id == 3); }
public void OrderByMultipleProperties() { var users = new[] { new User { FullName = "Jan Kowalski", Age = 18 }, new User { FullName = "Ala Nowak", Age = 21 }, new User { FullName = "Ala Nowak", Age = 22 } }; _dbContext.Users.AddRange(users); _dbContext.SaveChanges(); var query = new GetRowsParams { StartRow = 0, EndRow = 10, SortModel = new[] { new SortModel { ColId = "fullName", Sort = SortModelSortDirection.Ascending }, new SortModel { ColId = "age", Sort = SortModelSortDirection.Ascending } } }; var result = _dbContext.Users.GetInfiniteRowModelBlock(query); Assert.Equal(21, result.RowsThisBlock.ElementAt(0).Age); Assert.Equal(22, result.RowsThisBlock.ElementAt(1).Age); Assert.Equal(18, result.RowsThisBlock.ElementAt(2).Age); }
public void FilterByMultipleProperties(string nameFilter, int ageFilter, params int[] expectedIds) { var users = new[] { new User { Id = 1, FullName = "Ada Kowalska", Age = 22 }, new User { Id = 2, FullName = "Janek Nowak", Age = 55 }, new User { Id = 3, FullName = "Ada Nowak", Age = 18 } }; _dbContext.Users.AddRange(users); _dbContext.SaveChanges(); var query = new GetRowsParams { StartRow = 0, EndRow = 10, FilterModel = new Dictionary <string, FilterModel> { { "fullName", new FilterModel { Filter = nameFilter, Type = FilterModelType.Contains, FilterType = FilterModelFilterType.Text } }, { "age", new FilterModel { Filter = ageFilter, Type = FilterModelType.Equals, FilterType = FilterModelFilterType.Number } } } }; var result = _dbContext.Users.GetInfiniteRowModelBlock(query); Assert.Equal(expectedIds.Length, result.RowsThisBlock.Count()); Assert.True(result.RowsThisBlock.All(r => expectedIds.Contains(r.Id))); }
public void OrderByDescending() { var users = new[] { new User { FullName = "Ala Kowalska" }, new User { FullName = "Jan Kowalski" }, new User { FullName = "Ala Nowak" } }; _dbContext.Users.AddRange(users); _dbContext.SaveChanges(); var query = new GetRowsParams { StartRow = 0, EndRow = 10, SortModel = new[] { new SortModel { ColId = "fullName", Sort = SortModelSortDirection.Descending } } }; var result = _dbContext.Users.GetInfiniteRowModelBlock(query); Assert.Equal("Jan Kowalski", result.RowsThisBlock.ElementAt(0).FullName); Assert.Equal("Ala Nowak", result.RowsThisBlock.ElementAt(1).FullName); Assert.Equal("Ala Kowalska", result.RowsThisBlock.ElementAt(2).FullName); }
public void FilterByNumberRange() { var users = new[] { new User { Id = 1, Age = 22 }, new User { Id = 2, Age = 55 }, new User { Id = 3, Age = 18 } }; _dbContext.Users.AddRange(users); _dbContext.SaveChanges(); var query = new GetRowsParams { StartRow = 0, EndRow = 10, FilterModel = new Dictionary <string, FilterModel> { { "age", new FilterModel { Filter = 16, FilterTo = 22, Type = FilterModelType.InRange, FilterType = FilterModelFilterType.Number } } } }; var result = _dbContext.Users.GetInfiniteRowModelBlock(query); Assert.Contains(result.RowsThisBlock, u => u.Id == 1); Assert.Contains(result.RowsThisBlock, u => u.Id == 3); Assert.DoesNotContain(result.RowsThisBlock, u => u.Id == 2); }