public async Task CanUsePagingAsync() { const int NUMBER_OF_EMPLOYEES = 1000; const int PAGE_SIZE = 100; Log.MinimumLevel = LogLevel.Warning; var employees = EmployeeGenerator.GenerateEmployees(NUMBER_OF_EMPLOYEES, companyId: "1"); await _employeeRepository.AddAsync(employees, o => o.ImmediateConsistency()); Log.MinimumLevel = LogLevel.Trace; Assert.Equal(NUMBER_OF_EMPLOYEES, await _employeeRepository.CountAsync()); var results = await _employeeRepository.GetAllAsync(new CommandOptions().PageLimit(PAGE_SIZE)); Assert.True(results.HasMore); var viewedIds = new HashSet <string>(); int pagedRecords = 0; do { Assert.Equal(PAGE_SIZE, results.Documents.Count); Assert.Equal(NUMBER_OF_EMPLOYEES, results.Total); Assert.DoesNotContain(results.Hits, h => viewedIds.Contains(h.Id)); viewedIds.AddRange(results.Hits.Select(h => h.Id)); pagedRecords += results.Documents.Count; } while (await results.NextPageAsync()); Assert.False(results.HasMore); Assert.True(employees.All(e => viewedIds.Contains(e.Id))); Assert.Equal(NUMBER_OF_EMPLOYEES, pagedRecords); }
public async Task GetByCompanyAsync() { var employee1 = await _employeeRepository.AddAsync(EmployeeGenerator.Generate(age: 19, companyId: EmployeeGenerator.DefaultCompanyId), o => o.ImmediateConsistency()); var employee2 = await _employeeRepository.AddAsync(EmployeeGenerator.Generate(age: 20), o => o.ImmediateConsistency()); var results = await _employeeRepository.GetAllByCompanyAsync(employee1.CompanyId); Assert.Equal(1, results.Total); Assert.Equal(employee1, results.Documents.First()); results = await _employeeRepository.GetAllByCompanyAsync(employee2.CompanyId); Assert.Equal(1, results.Total); Assert.Equal(employee2, results.Documents.First()); results = await _employeeRepository.GetAllByCompaniesWithFieldEqualsAsync(new string[] { employee1.CompanyId }); Assert.Equal(1, results.Total); results = await _employeeRepository.GetAllByCompaniesWithFieldEqualsAsync(new string[] { employee1.CompanyId, employee2.CompanyId }); Assert.Equal(2, results.Total); Assert.Equal(1, await _employeeRepository.GetCountByCompanyAsync(employee1.CompanyId)); await _employeeRepository.RemoveAsync(employee1, o => o.Cache().ImmediateConsistency()); await _employeeRepository.GetByQueryAsync(q => q.FieldCondition(e => e.Age, ComparisonOperator.Equals, 12)); Assert.Equal(1, await _employeeRepository.CountAsync()); Assert.Equal(0, await _employeeRepository.GetCountByCompanyAsync(employee1.CompanyId)); }
public async Task GetByCompanyAsync() { var employee1 = await _employeeRepository.AddAsync(EmployeeGenerator.Generate(age: 19, companyId: EmployeeGenerator.DefaultCompanyId)); var employee2 = await _employeeRepository.AddAsync(EmployeeGenerator.Generate(age: 20)); await _client.RefreshAsync(); var results = await _employeeRepository.GetAllByCompanyAsync(employee1.CompanyId); Assert.Equal(1, results.Total); Assert.Equal(employee1, results.Documents.First()); results = await _employeeRepository.GetAllByCompanyAsync(employee2.CompanyId); Assert.Equal(1, results.Total); Assert.Equal(employee2, results.Documents.First()); Assert.Equal(1, await _employeeRepository.GetCountByCompanyAsync(employee1.CompanyId)); await _employeeRepository.RemoveAsync(employee1, false); await _client.RefreshAsync(); Assert.Equal(1, await _employeeRepository.CountAsync()); Assert.Equal(0, await _employeeRepository.GetCountByCompanyAsync(employee1.CompanyId)); }