Example #1
0
        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);
        }
Example #2
0
        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);
        }