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);
        }
示例#9
0
        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)));
        }
示例#11
0
        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);
        }