public void ReportNoActivity() { // Define the report var report = new ResumeSearchActivityReport { ClientId = _orgUnit.Id, SendToAccountManager = false, SendToClient = true }; _reportsCommand.CreateReport(report); // To client only and there's no activity, so no report. Execute(true); _emailServer.AssertNoEmailSent(); // To client and AM, but no activity, so sent to AM only. report.SendToAccountManager = true; _reportsCommand.UpdateReport(report); Execute(true); var emails = _emailServer.AssertEmailsSent(1); emails[0].AssertSubject("No resume search activity for " + _orgUnit.FullName + " for " + ReportPeriodText); emails[0].AssertAddresses(Return, Return, _admin); emails[0].AssertAttachments(1); // Try again - no duplicate report should be sent. Execute(true); _emailServer.AssertNoEmailSent(); }
private void TestReportActivity <TReport>(Func <IEmployer, bool> createActivity, bool sendToAccountManager, bool sendToClient, bool sendToSecondaryClients) where TReport : EmployerReport, new() { // Create everyone. var administrator = CreateAdministrator(); var organisation = CreateOrganisation(administrator.Id); var employer = CreateEmployer(organisation); // Define the report. var report = new TReport { ClientId = organisation.Id, SendToAccountManager = sendToAccountManager, SendToClient = sendToClient, }; _reportsCommand.CreateReport(report); // Create activity to report on. var isActivity = createActivity(employer); var status = new ReportStatus(report, isActivity); // No contact details set. if (sendToClient) { if (!sendToAccountManager) { // Check that no email is sent to the client if no contact details set. Execute(); _emailServer.AssertNoEmailSent(); } // Set the contact details. organisation.ContactDetails = new ContactDetails { FirstName = ClientFirstName, LastName = ClientLastName, EmailAddress = ClientEmail }; if (sendToSecondaryClients) { organisation.ContactDetails.SecondaryEmailAddresses = SecondaryClientEmail; } _organisationsCommand.UpdateOrganisation(organisation); } // Run the report. Execute(); MockEmail administratorEmail = null; MockEmail clientEmail = null; MockEmail secondaryClientEmail = null; var emails = _emailServer.GetEmails().ToList(); if (sendToAccountManager) { Assert.IsTrue(emails.Count > 0); administratorEmail = emails[0]; emails.RemoveAt(0); } if (sendToClient) { Assert.IsTrue(emails.Count > 0); clientEmail = emails[0]; emails.RemoveAt(0); } if (sendToSecondaryClients) { Assert.IsTrue(emails.Count > 0); secondaryClientEmail = emails[0]; emails.RemoveAt(0); } Assert.AreEqual(0, emails.Count); if (administratorEmail != null) { AssertAdministratorEmail(administratorEmail, administrator, organisation, status); } if (clientEmail != null) { AssertClientEmail(clientEmail, administrator, organisation, status); } if (secondaryClientEmail != null) { AssertSecondaryClientEmail(secondaryClientEmail, administrator, organisation, status); } }
void IEmployerReportsCommand.CreateReport(EmployerReport report) { _reportsCommand.CreateReport(report); }