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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }