public async Task ShouldReturn0_WhenProductsInSubcriptionNoExists()
        {
            SetupMocks(_subscription);
            var criterion = new CalculateProductsSumInSubscriptionCriterion();
            var query     = new CalculateProductsSumInSubscriptionQuery(_queryBuilderMock.Object);


            var queryResult = await query.AskAsync(criterion);


            Assert.AreEqual(queryResult, 0);
        }
        public async Task ShouldCalculateTotalPrice_WhenProductsInSubcriptionExists(int productsCount)
        {
            var random = new Randomizer();

            for (int i = 0; i < productsCount; i++)
            {
                _subscription.Products.Add(new Product()
                {
                    Price = random.NextDouble()
                });
            }
            SetupMocks(_subscription);
            var criterion = new CalculateProductsSumInSubscriptionCriterion();
            var query     = new CalculateProductsSumInSubscriptionQuery(_queryBuilderMock.Object);


            var queryResult = await query.AskAsync(criterion);


            Assert.AreEqual(queryResult, _subscription.Products.Sum(x => x.Price));
        }