public async Task GetAggregatedAmountsAsync_Paging_Consistency() { var configuration = Configuration.GetConfiguration(); using (var db = new WaDEContext(configuration)) { for (var i = 0; i < 15; i++) { await AggregatedAmountsFactBuilder.Load(db); } } var filters = new AggregatedAmountsFilters(); var sut = CreateAggregatedAmountsAccessor(); var baseResults = (await sut.GetAggregatedAmountsAsync(filters, 0, 15)).Organizations.SelectMany(a => a.AggregatedAmounts).Select(a => a.AggregatedAmountId).ToList(); for (var i = 0; i < 14; i++) { var pagedResults = await sut.GetAggregatedAmountsAsync(filters, i, 2); var waterAllocations = pagedResults.Organizations.SelectMany(a => a.AggregatedAmounts).Select(a => a.AggregatedAmountId).ToList(); waterAllocations.Should().HaveCount(2); waterAllocations.Should().BeEquivalentTo(baseResults.Skip(i).Take(2)); } }
public async Task GetAggregatedAmountsAsync_NoFilters() { var configuration = Configuration.GetConfiguration(); AggregatedAmountsFact aggregatedAmount; using (var db = new WaDEContext(configuration)) { aggregatedAmount = await AggregatedAmountsFactBuilder.Load(db); aggregatedAmount.AggregatedAmountId.Should().NotBe(0); } var filters = new AggregatedAmountsFilters(); var sut = CreateAggregatedAmountsAccessor(); var result = await sut.GetAggregatedAmountsAsync(filters, 0, int.MaxValue); result.TotalAggregatedAmountsCount.Should().Be(1); result.Organizations.Should().HaveCount(1); var org = result.Organizations.Single(); org.OrganizationId.Should().Be(aggregatedAmount.OrganizationId); org.AggregatedAmounts.Should().HaveCount(1); org.AggregatedAmounts[0].AggregatedAmountId.Should().Be(aggregatedAmount.AggregatedAmountId); }
public async Task GetAggregatedAmountsAsync_Paging() { var configuration = Configuration.GetConfiguration(); using (var db = new WaDEContext(configuration)) { for (var i = 0; i < 15; i++) { await AggregatedAmountsFactBuilder.Load(db); } } var filters = new AggregatedAmountsFilters(); var alreadyRetrieved = new List <long>(); for (var i = 1; i <= 5; i++) { var sut = CreateAggregatedAmountsAccessor(); var pagedResults = await sut.GetAggregatedAmountsAsync(filters, Utility.NthTriangle(i - 1), i); pagedResults.TotalAggregatedAmountsCount.Should().Be(15); var waterAllocations = pagedResults.Organizations.SelectMany(a => a.AggregatedAmounts).Select(a => a.AggregatedAmountId).ToList(); waterAllocations.Should().HaveCount(i); foreach (var waterAllocation in waterAllocations) { alreadyRetrieved.Should().NotContain(waterAllocation); alreadyRetrieved.Add(waterAllocation); } } alreadyRetrieved.Should().OnlyHaveUniqueItems().And.HaveCount(15); }
public async Task GetAggregatedAmountsAsync_Paging_RequestAfterLast() { var configuration = Configuration.GetConfiguration(); using (var db = new WaDEContext(configuration)) { for (var i = 0; i < 3; i++) { await AggregatedAmountsFactBuilder.Load(db); } } var filters = new AggregatedAmountsFilters(); var sut = CreateAggregatedAmountsAccessor(); var pagedResults = await sut.GetAggregatedAmountsAsync(filters, 4, 10); pagedResults.TotalAggregatedAmountsCount.Should().Be(3); var waterAllocations = pagedResults.Organizations.SelectMany(a => a.AggregatedAmounts).Select(a => a.AggregatedAmountId).ToList(); waterAllocations.Should().HaveCount(0); }