public void When_MarkChecklistWithCompleteFailureAttempt_Then_should_call_correct_methods()
        {
            // Given
            var target = GetTarget();
            var request = new MarkChecklistWithCompleteFailureAttemptRequest()
                              {
                                  ChecklistId = 100,
                                  CompanyId = 200,
                                  UserId = Guid.NewGuid()
                              };

            var user = new UserForAuditing();
            _userRepository
                .Setup(x => x.GetByIdAndCompanyId(request.UserId, request.CompanyId))
                .Returns(user);

            var mockFireRiskAssessmentChecklist = new Mock<FireRiskAssessmentChecklist>();
            _fireRiskAssessmentChecklistRepository
                .Setup(x => x.GetById(request.ChecklistId))
                .Returns(mockFireRiskAssessmentChecklist.Object);

            // When
            target.MarkChecklistWithCompleteFailureAttempt(request);

            // Then
            _userRepository.VerifyAll();
            _fireRiskAssessmentChecklistRepository.Verify(x => x.SaveOrUpdate(mockFireRiskAssessmentChecklist.Object));
            mockFireRiskAssessmentChecklist.Verify(x => x.MarkChecklistWithCompleteFailureAttempt(user));
        }
        public void MarkChecklistWithCompleteFailureAttempt(MarkChecklistWithCompleteFailureAttemptRequest request)
        {
            var user = _userForAuditingRepository.GetByIdAndCompanyId(request.UserId, request.CompanyId);
            var fireRiskAssessmentChecklist = _fireRiskAssessmentChecklistRepository.GetById(request.ChecklistId);
            
            fireRiskAssessmentChecklist.MarkChecklistWithCompleteFailureAttempt(user);

            _fireRiskAssessmentChecklistRepository.SaveOrUpdate(fireRiskAssessmentChecklist);
        }