public async Task Should_sum_up_when_getting_monthly_calls() { var date = new DateTime(2016, 1, 15); IReadOnlyList <StoredUsage> originalData = new List <StoredUsage> { new StoredUsage(date.AddDays(1), 10, 15), new StoredUsage(date.AddDays(3), 13, 18), new StoredUsage(date.AddDays(5), 15, 20), new StoredUsage(date.AddDays(7), 17, 22) }; A.CallTo(() => usageStore.QueryAsync("key", new DateTime(2016, 1, 1), new DateTime(2016, 1, 31))) .Returns(originalData); var result = await sut.GetMonthlyCalls("key", date); Assert.Equal(55, result); }
public async Task <IReadOnlyList <StoredUsage> > QueryAsync(string key, DateTime fromDate, DateTime toDate) { Guard.NotNull(key, nameof(key)); ThrowIfDisposed(); var originalUsages = await usageStore.QueryAsync(key, fromDate, toDate); var enrichedUsages = new List <StoredUsage>(); var usagesDictionary = originalUsages.ToDictionary(x => x.Date); for (var date = fromDate; date <= toDate; date = date.AddDays(1)) { enrichedUsages.Add(usagesDictionary.GetOrDefault(date) ?? new StoredUsage(date, 0, 0)); } return(enrichedUsages); }