public void should_fail_for_empty_products()
        {
            var factory = new ProductsReportFactory(_productSalesCalculatorMock.Object);

            Action createReport = () => factory.Create(Guid.NewGuid(), null, null, 3);

            createReport.Should().Throw <EmptyProductsException>();
        }
        public void create_should_return_report()
        {
            var fixture       = new Fixture();
            var products      = fixture.CreateMany <Product>().ToList();
            var orders        = fixture.CreateMany <Order>().ToList();
            var sales         = products.Select(p => CreateSales(p, fixture.Create <int>()));
            var reportFactory = new ProductsReportFactory(_productSalesCalculatorMock.Object);

            _productSalesCalculatorMock.Setup(x => x.Calculate(products, orders))
            .Returns(sales);

            var report = reportFactory.Create(Guid.NewGuid(), products, orders, 3);

            report.Should().NotBeNull();
        }