public async Task Batch_ReturnsDesiredNumberOfResults() { var fixture = new Fixture(); var count = fixture.Create <int>(); var callCounter = 0; Func <int, Task <Result> > func = async(z) => { callCounter++; return(await Task.FromResult(Result.Ok())); }; var result = await _taskBatcher.BatchExecute(count, func); callCounter.Should().Be(count); }
public async Task <Result <ListingCountPerAgent> > GetMostActiveAgents(int count, string type, string filterPath) { var query = new ListingFetcherQuery(type, filterPath, ApiConstants.MaxPageSize); var fetchingResult = await _agentFetcher.Fetch(query); if (fetchingResult.IsFailed) { return(fetchingResult.ToResult()); } var initialData = fetchingResult.Value; var pageCount = (int)Math.Ceiling((double)initialData.TotalFound / ApiConstants.MaxPageSize); var results = await _taskBatcher.BatchExecute(pageCount, (page) => _agentFetcher.Fetch(query, page, initialData.TotalFound)); var parsedResults = _agentCollectionResultParser.Parse(results, initialData.FetchedAgents); return(parsedResults.GetMostActive(count)); }