Exemple #1
0
        public void TestResumeCount()
        {
            // Create users.

            CreateMember(1, true);
            var member2 = CreateMember(2, true);
            var member3 = CreateMember(3, true);

            CreateMember(4, false);

            // Send.

            _emailsCommand.TrySend(new StatsEmail(_dailyReportsQuery.GetDailyReport(DayRange.Yesterday)));

            // Check.

            var email = _emailServer.AssertEmailSent();

            email.AssertHtmlViewContains("<td style=\"text-align:right;\">New resumes:</td>\r\n            <td style=\"text-align:left;\">3</td>");
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">Uploaded resumes:</td>\r\n            <td style=\"text-align:left;\">3</td>");
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">Reloaded resumes:</td>\r\n            <td style=\"text-align:left;\">0</td>");
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">Edited resumes:</td>\r\n            <td style=\"text-align:left;\">0</td>");
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">Updated resumes:</td>\r\n            <td style=\"text-align:left;\">3</td>");

            // Delete the UploadResume event for member2, but add an EditResume event.

            var events = _resumeReportsQuery.GetResumeEvents(member2.Id);

            _resumeReportsCommand.DeleteResumeEvent(events[0].Id);

            var candidate = _candidatesCommand.GetCandidate(member2.Id);

            _resumeReportsCommand.CreateResumeEvent(new ResumeEditEvent {
                CandidateId = member2.Id, ResumeId = candidate.ResumeId.Value, ResumeCreated = true, Time = events[0].Time
            });
            _emailsCommand.TrySend(new StatsEmail(_dailyReportsQuery.GetDailyReport(DayRange.Yesterday)));
            email = _emailServer.AssertEmailSent();
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">New resumes:</td>\r\n            <td style=\"text-align:left;\">3</td>");
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">Uploaded resumes:</td>\r\n            <td style=\"text-align:left;\">2</td>");
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">Reloaded resumes:</td>\r\n            <td style=\"text-align:left;\">0</td>");
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">Edited resumes:</td>\r\n            <td style=\"text-align:left;\">1</td>");
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">Updated resumes:</td>\r\n            <td style=\"text-align:left;\">3</td>");

            // Delete the UploadResume event for member2, but add an ReloadResume event.

            events = _resumeReportsQuery.GetResumeEvents(member3.Id);

            candidate = _candidatesCommand.GetCandidate(member2.Id);
            _resumeReportsCommand.CreateResumeEvent(new ResumeReloadEvent {
                CandidateId = member3.Id, ResumeId = candidate.ResumeId.Value, Time = events[0].Time
            });
            _emailsCommand.TrySend(new StatsEmail(_dailyReportsQuery.GetDailyReport(DayRange.Yesterday)));
            email = _emailServer.AssertEmailSent();
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">New resumes:</td>\r\n            <td style=\"text-align:left;\">3</td>");
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">Uploaded resumes:</td>\r\n            <td style=\"text-align:left;\">2</td>");
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">Reloaded resumes:</td>\r\n            <td style=\"text-align:left;\">1</td>");
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">Edited resumes:</td>\r\n            <td style=\"text-align:left;\">1</td>");
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">Updated resumes:</td>\r\n            <td style=\"text-align:left;\">3</td>");
        }
        public void TestEmailReminderEvent()
        {
            const double interval = -1;

            _memberAccountsCommand.CreateTestMember(1);

            var two = _memberAccountsCommand.CreateTestMember(2);

            two.CreatedTime = two.CreatedTime.AddDays(-1);
            _memberAccountsCommand.UpdateMember(two);
            var candidate = _candidatesCommand.GetCandidate(two.Id);

            _candidateResumesCommand.AddTestResume(candidate);
            _resumeReportsCommand.CreateResumeEvent(new ResumeUploadEvent {
                CandidateId = two.Id, ResumeId = candidate.ResumeId.Value, Time = two.CreatedTime
            });

            var three = _memberAccountsCommand.CreateTestMember(3);

            three.CreatedTime = DateTime.Now.AddDays(interval - 1);
            _memberAccountsCommand.UpdateMember(three);
            candidate = _candidatesCommand.GetCandidate(three.Id);
            _candidateResumesCommand.AddTestResume(candidate);
            _resumeReportsCommand.CreateResumeEvent(new ResumeEditEvent {
                CandidateId = three.Id, ResumeId = candidate.ResumeId.Value, ResumeCreated = true, Time = DateTime.Now.AddDays(-1)
            });

            _employerAccountsCommand.CreateTestEmployer(4, _organisationsCommand.CreateTestOrganisation(0));
            _employerAccountsCommand.CreateTestEmployer(5, _organisationsCommand.CreateTestOrganisation(0));
            var six = _employerAccountsCommand.CreateTestEmployer(6, _organisationsCommand.CreateTestOrganisation(0));

            six.CreatedTime = DateTime.Now.AddDays(interval - 1);
            _employerAccountsCommand.UpdateEmployer(six);

            _employerAccountsCommand.CreateTestRecruiter(7, _organisationsCommand.CreateTestOrganisation(0));
            _employerAccountsCommand.CreateTestRecruiter(8, _organisationsCommand.CreateTestOrganisation(0));
            var nine = _employerAccountsCommand.CreateTestRecruiter(9, _organisationsCommand.CreateTestOrganisation(0));

            nine.CreatedTime = DateTime.Now.AddDays(interval - 1);
            _employerAccountsCommand.UpdateEmployer(nine);

            var reportingTask = new ReportingEmailTask();

            reportingTask.ExecuteTask();

            // Check.

            var email = _emailServer.AssertEmailSent();

            email.AssertAddresses(System, Return, AllStaff);
            email.AssertSubject(Subject);
            email.AssertNoAttachments();
            email.AssertHtmlViewContains("<td style=\"text-align:right;\">New resumes:</td>\r\n            <td style=\"text-align:left;\">2</td>");
        }
Exemple #3
0
        private void CreateMember(int index, DateTime createdTime)
        {
            var member = _memberAccountsCommand.CreateTestMember(index);

            member.CreatedTime = createdTime;
            _memberAccountsCommand.UpdateMember(member);
            var candidate = _candidatesQuery.GetCandidate(member.Id);

            _candidateResumesCommand.AddTestResume(candidate);

            _resumeReportsCommand.CreateResumeEvent(new ResumeUploadEvent {
                CandidateId = member.Id, ResumeId = candidate.ResumeId.Value, Time = member.CreatedTime
            });
        }
Exemple #4
0
        private void AddEvent(int eventType, DateTime eventTime, ICandidate candidate)
        {
            switch (eventType)
            {
            case UploadResume:
                _resumeReportsCommand.CreateResumeEvent(new ResumeUploadEvent {
                    CandidateId = candidate.Id, ResumeId = candidate.ResumeId.Value, Time = eventTime
                });
                break;

            case EditResume:
                _resumeReportsCommand.CreateResumeEvent(new ResumeEditEvent {
                    CandidateId = candidate.Id, ResumeId = candidate.ResumeId.Value, Time = eventTime
                });
                break;

            case ReloadResume:
                _resumeReportsCommand.CreateResumeEvent(new ResumeReloadEvent {
                    CandidateId = candidate.Id, ResumeId = candidate.ResumeId.Value, Time = eventTime
                });
                break;
            }
        }
Exemple #5
0
        public void TestUploadTimeAgo()
        {
            // Created long time ago.

            var candidate = CreateCandidateWithResumeFile();

            // Uploaded long time ago.

            _resumeReportsCommand.CreateResumeEvent(new ResumeUploadEvent {
                CandidateId = candidate.Id, ResumeId = candidate.ResumeId.Value, Time = DateTime.Now.AddDays(-10)
            });

            Assert.AreEqual(1, _resumeReportsQuery.GetResumes(DateTime.Now.Date));
            Assert.AreEqual(0, _resumeReportsQuery.GetNewResumes(DayRange.Yesterday));
            Assert.AreEqual(0, _resumeReportsQuery.GetUploadedResumes(DayRange.Yesterday));
            Assert.AreEqual(0, _resumeReportsQuery.GetReloadedResumes(DayRange.Yesterday));
            Assert.AreEqual(0, _resumeReportsQuery.GetEditedResumes(DayRange.Yesterday));
            Assert.AreEqual(0, _resumeReportsQuery.GetUpdatedResumes(DayRange.Yesterday));
        }
Exemple #6
0
 void IResumesHandler.OnResumeUploaded(Guid candidateId, Guid resumeId)
 {
     _resumeReportsCommand.CreateResumeEvent(new ResumeUploadEvent {
         CandidateId = candidateId, ResumeId = resumeId
     });
 }