public void Given_valid_request_with_multiple_non_employees_to_detach_When_DetachNonEmployee_is_called_Then_should_call_appropiate_methods_correct_amount_of_times() { //Given var riskAssessmentService = CreateRiskAssessmentService(); var detachNonEmployeeFromRiskAssessmentRequest = new DetachNonEmployeeFromRiskAssessmentRequest { NonEmployeesToDetachIds = new List<long> { 1, 2 }, RiskAssessmentId = 2 }; SetupValidUser(detachNonEmployeeFromRiskAssessmentRequest); var mockRiskAssessment = new Mock<GeneralRiskAssessment>(); _riskAssessmentRepository .Setup(rr => rr.GetByIdAndCompanyId(detachNonEmployeeFromRiskAssessmentRequest.RiskAssessmentId,detachNonEmployeeFromRiskAssessmentRequest.CompanyId)) .Returns(mockRiskAssessment.Object); var mockNonEmployee = new Mock<NonEmployee>(); _nonEmployeeRepository .Setup(x => x.GetByIdAndCompanyId(detachNonEmployeeFromRiskAssessmentRequest.NonEmployeesToDetachIds[0], detachNonEmployeeFromRiskAssessmentRequest.CompanyId)) .Returns(mockNonEmployee.Object); _nonEmployeeRepository .Setup(x => x.GetByIdAndCompanyId(detachNonEmployeeFromRiskAssessmentRequest.NonEmployeesToDetachIds[1],detachNonEmployeeFromRiskAssessmentRequest.CompanyId)) .Returns(mockNonEmployee.Object); //When riskAssessmentService.DetachNonEmployeeFromRiskAssessment(detachNonEmployeeFromRiskAssessmentRequest); //Then _riskAssessmentRepository.VerifyAll(); _nonEmployeeRepository.VerifyAll(); mockRiskAssessment.Verify(x => x.DetachNonEmployeeFromRiskAssessment(mockNonEmployee.Object, _user)); }
private void DetachRequestedNonEmployees(DetachNonEmployeeFromRiskAssessmentRequest request, RiskAssessment riskAssessment, UserForAuditing user) { foreach (var nonEmployeesToDetachId in request.NonEmployeesToDetachIds) { var nonEmployee = _nonEmployeeRepository.GetByIdAndCompanyId(nonEmployeesToDetachId, request.CompanyId); riskAssessment.DetachNonEmployeeFromRiskAssessment(nonEmployee, user); } _riskAssessmentRepository.SaveOrUpdate(riskAssessment); }
public void DetachNonEmployeeFromRiskAssessment(DetachNonEmployeeFromRiskAssessmentRequest request) { _log.Add(request); try { var user = _userForAuditingRepository.GetByIdAndCompanyId(request.UserId, request.CompanyId); var riskAssessment = _riskAssessmentRepository.GetByIdAndCompanyId(request.RiskAssessmentId, request.CompanyId); DetachRequestedNonEmployees(request, riskAssessment, user); } catch (Exception ex) { _log.Add(ex); throw; } }
private void SetupValidUser(DetachNonEmployeeFromRiskAssessmentRequest detachNonEmployeeFromRiskAssessmentRequest) { _userRepository .Setup(x => x.GetByIdAndCompanyId(detachNonEmployeeFromRiskAssessmentRequest.UserId,detachNonEmployeeFromRiskAssessmentRequest.CompanyId)) .Returns(_user); }