public void Given_employee_is_assigned_to_task_then_return_task()
        {
            //GIVEN
            var employee = new Employee() {Id = Guid.NewGuid(), NotificationType = NotificationType.Daily };
            var riskAssessement = new GeneralRiskAssessment();
            var hazard = MultiHazardRiskAssessmentHazard.Create(riskAssessement,new Hazard(), null);
            hazard.AddFurtherActionTask( new MultiHazardRiskAssessmentFurtherControlMeasureTask() { TaskAssignedTo = employee, TaskCompletionDueDate = DateTime.Now.AddDays(-5)},null );
            riskAssessement.Hazards.Add(hazard);
            
            _gras.Add(riskAssessement);
            var target = new GetOverdueMultiHazardRiskAssessmentTasksForEmployeeQuery<GeneralRiskAssessment>(_queryableWrapper.Object);

            //WHEN
            var result = target.Execute(employee.Id, null);

            //THEN
            Assert.That(result.Count,Is.EqualTo(1));
        }
        public void Given_employee_is_risk_assessor_and_notification_frequency_is_set_to_monthly_on_26th_then_return_tasks_since_26th_of_previous_month()
        {
            //GIVEN
            var employee = new Employee() { Id = Guid.NewGuid(), NotificationType = NotificationType.Monthly, NotificationFrequecy = 26 };
            var riskAssessor = new RiskAssessor() { Id = 5596870, Employee = employee };
            var riskAssessement = new GeneralRiskAssessment() { RiskAssessor = riskAssessor };
            var hazard = MultiHazardRiskAssessmentHazard.Create(riskAssessement, new Hazard(), null);

            hazard.AddFurtherActionTask(new MultiHazardRiskAssessmentFurtherControlMeasureTask()
            {
                Id = 111,
                TaskAssignedTo = new Employee() { Id = Guid.NewGuid() },
                TaskCompletionDueDate = new DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-1).Month, 27), //27th of last month
            }, null);

            hazard.AddFurtherActionTask(new MultiHazardRiskAssessmentFurtherControlMeasureTask()
            {
                Id = 111,
                TaskCompletionDueDate = new DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-1).Month, 28), //28th of last month
            }, null);

            hazard.AddFurtherActionTask(new MultiHazardRiskAssessmentFurtherControlMeasureTask()
            {
                Id = 111,
                TaskCompletionDueDate = new DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-1).Month, 23), //23th of last month
            }, null);

            riskAssessement.Hazards.Add(hazard);

            _gras.Add(riskAssessement);

            var target = new GetOverdueMultiHazardRiskAssessmentTasksForEmployeeQuery<GeneralRiskAssessment>(_queryableWrapper.Object);

            //WHEN
            var result = target.Execute(employee.Id, null);

            //THEN
            Assert.That(result.Count, Is.EqualTo(2));
        }
        public void Given_employee_is_risk_assessor_and_notification_frequency_is_set_to_weekly_then_return_tasks_since_previous_week()
        {
            //GIVEN
            var employee = new Employee() { Id = Guid.NewGuid(), NotificationType = NotificationType.Weekly, NotificationFrequecy = (int)DayOfWeek.Wednesday };
            var riskAssessor = new RiskAssessor() {Id = 5596870, Employee = employee};
            var riskAssessement = new GeneralRiskAssessment() { RiskAssessor = riskAssessor };
            var hazard = MultiHazardRiskAssessmentHazard.Create(riskAssessement, new Hazard(), null);

            hazard.AddFurtherActionTask(new MultiHazardRiskAssessmentFurtherControlMeasureTask()
            {
                Id = 111,
                TaskAssignedTo = new Employee() { Id = Guid.NewGuid()},
                TaskCompletionDueDate = DateTime.Now.AddDays(-2)
            }, null);

            hazard.AddFurtherActionTask(new MultiHazardRiskAssessmentFurtherControlMeasureTask()
            {
                Id = 111,
                TaskCompletionDueDate = DateTime.Now.AddDays(-3)
            }, null);

            hazard.AddFurtherActionTask(new MultiHazardRiskAssessmentFurtherControlMeasureTask()
            {
                Id = 111,
                TaskCompletionDueDate = DateTime.Now.AddDays(-12)
            }, null);

            riskAssessement.Hazards.Add(hazard);

            _gras.Add(riskAssessement);

            var target = new GetOverdueMultiHazardRiskAssessmentTasksForEmployeeQuery<GeneralRiskAssessment>(_queryableWrapper.Object);

            //WHEN
            var result = target.Execute(employee.Id, null);

            //THEN
            Assert.That(result.Count, Is.EqualTo(2));
        }