コード例 #1
0
        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();
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
 void IEmployerReportsCommand.CreateReport(EmployerReport report)
 {
     _reportsCommand.CreateReport(report);
 }