public void RunCustomerReportsShouldSendEmails()
        {
            // arrange
            var expectedCustomer = new Customer("*****@*****.**");
            const string expectedReportBody = "This is the expected report body";

            _customerDataMock.Setup(c => c.GetCustomersForReport()).Returns(new[] { expectedCustomer });

            _reportBuilderMock.Setup(r => r.CreateCustomerReport(expectedCustomer))
                .Returns(new Report(expectedCustomer.Email, expectedReportBody));

            var sut = new ReportingService(_customerDataMock.Object, _reportBuilderMock.Object, _emailerMock.Object);

            // act
            sut.RunCustomerReports();

            // assert
            _emailerMock.Verify(e => e.Send(expectedCustomer.Email, expectedReportBody));
        }
 public Report CreateCustomerReport(Customer customer)
 {
     return new Report(customer.Email, $"This is a report for {customer.Email}");
 }