public void given_gra_task_is_marked_as_send_task_notification_and_employee_is_risk_assessor_when_executes_then_email_sent() { //given var employee = new Employee() { Id = Guid.NewGuid(), CompanyId = 33748, NotificationType = NotificationType.Daily, NotificationFrequecy = null }; employee.UpdateRiskAssessorDetails(true, false, false, false, null); var overdueGRATask = CreateTask(); overdueGRATask.SendTaskOverdueNotification = true; overdueGRATask.RiskAssessment.RiskAssessor = employee.RiskAssessor; var employees = new List<Employee>() { employee }; _taskEmployeeQuery.Setup(x => x.Execute()) .Returns(() => employees); _overdueGRATaskQuery.Setup(x => x.Execute(It.IsAny<Guid>(), _session.Object)) .Returns(() => new List<MultiHazardRiskAssessmentFurtherControlMeasureTask>() { overdueGRATask }); _overduePRATaskQuery.Setup(x => x.Execute(It.IsAny<Guid>(), _session.Object)) .Returns(() => new List<MultiHazardRiskAssessmentFurtherControlMeasureTask>() { }); SendEmployeeDigestEmail serviceBusCommand = null; _bus.Setup(x => x.Send(It.IsAny<SendEmployeeDigestEmail>())) .Callback<object[]>(p1 => serviceBusCommand = (SendEmployeeDigestEmail)p1[0]); var baseTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 30, 0); ConfigurationManager.AppSettings["EscalationService_LastSuccessfulExecutionTime"] = baseTime.AddDays(-2).ToString(); var target = GetTarget(); //when target.Execute(); //then _bus.Verify(x => x.Send(It.IsAny<SendEmployeeDigestEmail>()), Times.Once()); Assert.That(serviceBusCommand.GeneralRiskAssessmentsOverdueTasks.Count, Is.EqualTo(1)); Assert.That(serviceBusCommand.PersonalRiskAssessmentTasksOverdue.Count, Is.EqualTo(0)); }