public void Given_valid_request_When_register_employee_as_user_called_Then_should_call_correct_methods() { // Given var request = new CreateEmployeeAsUserRequest { CompanyId = 1, EmployeeId = Guid.NewGuid(), NewUserId = Guid.NewGuid(), RoleId = Guid.NewGuid(), SiteId = 66L, ActioningUserId = Guid.NewGuid() }; var target = CreateEmployeeService(); _employeeRepository .Setup(x => x.GetByIdAndCompanyId(request.EmployeeId, request.CompanyId)) .Returns(new Employee {Id = request.EmployeeId, CompanyId = request.CompanyId}); _registerEmployeeAsUserParametersMapper .Setup(x => x.Map(request)) .Returns(new RegisterEmployeeAsUserParameters { NewUserId = request.NewUserId, Role = new Role {Id = request.RoleId}, Site = new Site {Id = request.SiteId, ClientId = request.CompanyId}, ActioningUser = new UserForAuditing {Id = request.ActioningUserId, CompanyId = request.CompanyId}, CompanyId = request.CompanyId }); // When target.CreateUser(request); // Then _employeeRepository.Verify(x => x.SaveOrUpdate(It.Is<Employee>( y => y.Id == request.EmployeeId && y.CompanyId == request.CompanyId && y.LastModifiedBy.Id == request.ActioningUserId && y.LastModifiedOn.HasValue && y.User != null && y.User.Id == request.NewUserId && y.User.CompanyId == request.CompanyId && y.User.Site != null && y.User.Site.Id == request.SiteId && y.User.Role != null && y.User.Role.Id == request.RoleId && y.User.CreatedBy != null && y.User.CreatedBy.Id == request.ActioningUserId && y.User.CreatedOn.HasValue ))); }
public RegisterEmployeeAsUserParameters Map(CreateEmployeeAsUserRequest request) { var parameters = new RegisterEmployeeAsUserParameters { NewUserId = request.NewUserId, CompanyId = request.CompanyId }; parameters.ActioningUser = _userForAuditingRepository.GetByIdAndCompanyId(request.ActioningUserId, request.CompanyId); if (request.MainSiteId != default(long)) parameters.MainSite = _siteRepository.GetByIdAndCompanyId(request.MainSiteId, request.CompanyId); if (request.RoleId != default(Guid)) parameters.Role = _roleRepository.GetByIdAndCompanyId(request.RoleId, request.CompanyId); if (request.PermissionsForAllSites) parameters.Site = _siteRepository.GetByCompanyId(request.CompanyId).First(x => x.IsMainSite); else { if (request.SiteId != default(long)) parameters.Site = _siteRepository.GetByIdAndCompanyId(request.SiteId, request.CompanyId); } return parameters; }
public void Given_valid_request_When_ValidateRegisterAsUser_called_Then_should_not_return_errors() { // Given var request = new CreateEmployeeAsUserRequest { CompanyId = 1, EmployeeId = Guid.NewGuid(), NewUserId = Guid.NewGuid(), RoleId = Guid.NewGuid(), SiteId = 66L, ActioningUserId = Guid.NewGuid() }; var target = CreateEmployeeService(); _employeeRepository .Setup(x => x.GetByIdAndCompanyId(request.EmployeeId, request.CompanyId)) .Returns(new Employee { Id = request.EmployeeId, CompanyId = request.CompanyId , ContactDetails = new List<EmployeeContactDetail>(){ new EmployeeContactDetail{Email="*****@*****.**",Telephone1="01612381883"}}}); _registerEmployeeAsUserParametersMapper .Setup(x => x.Map(request)) .Returns(new RegisterEmployeeAsUserParameters { NewUserId = request.NewUserId, Role = new Role { Id = request.RoleId }, Site = new Site { Id = request.SiteId, ClientId = request.CompanyId }, ActioningUser = new UserForAuditing { Id = request.ActioningUserId, CompanyId = request.CompanyId }, CompanyId = request.CompanyId }); //When var results = target.ValidateRegisterAsUser(request); //Then Assert.That(results.IsValid, Is.EqualTo(true)); }
public void CreateUser(CreateEmployeeAsUserRequest request) { _log.Add(request); var employee = _employeeRepository.GetByIdAndCompanyId(request.EmployeeId, request.CompanyId); var parameters = _registerEmployeeAsUserParametersMapper.Map(request); employee.CreateUser(parameters); _employeeRepository.SaveOrUpdate(employee); }
public ValidationResult ValidateRegisterAsUser(CreateEmployeeAsUserRequest request) { _log.Add(request); try { var employee = _employeeRepository.GetByIdAndCompanyId(request.EmployeeId, request.CompanyId); var parameters = _registerEmployeeAsUserParametersMapper.Map(request); return employee.ValidateRegisterAsUser(parameters); } catch (Exception ex) { _log.Add(ex); throw; } }
private void RegisterEmployeeAsUser(EmployeeDto employee, CreateEmployeeAsUserRequest request) { var registerNonAdminUserRequest = new RegisterNonAdminUserRequest { ClientId = CurrentUser.CompanyId, PeninsulaApplicationId = Guid.Parse(ConfigurationManager.AppSettings["BSOGuid"]), RegistrationEmail = employee.MainContactDetails.Email, TelephoneNumber = employee.MainContactDetails.Telephone1 ?? employee.MainContactDetails.Telephone2 }; request.NewUserId = _newRegistrationRequestService.RegisterNonAdminUser(registerNonAdminUserRequest); _employeeService.CreateUser(request); }
private bool RegistrationAttemptIsValid(EmployeeDto employee, CreateEmployeeAsUserRequest createEmployeeAsUserRequest) { var validationResult = _employeeService.ValidateRegisterAsUser(createEmployeeAsUserRequest); if (!validationResult.IsValid) { foreach (var error in validationResult.Errors) { ModelState.AddModelError(error.PropertyName, error.ErrorMessage); } return false; } if (_newRegistrationRequestService.HasEmailBeenRegistered(employee.MainContactDetails.Email)) { ModelState.AddModelError( string.Empty, "Sorry you are unable to create this User: the email address has already been registered" ); return false; } return true; }
public void Given_valid_request_When_ValidateRegisterAsUser_called_employee_dosent_have_phone_Then_should_not_return_errors() { // Given var request = new CreateEmployeeAsUserRequest { CompanyId = 1, EmployeeId = Guid.NewGuid(), NewUserId = Guid.NewGuid(), RoleId = Guid.NewGuid(), SiteId = 66L, ActioningUserId = Guid.NewGuid() }; var target = CreateEmployeeService(); _employeeRepository .Setup(x => x.GetByIdAndCompanyId(request.EmployeeId, request.CompanyId)) .Returns(new Employee { Id = request.EmployeeId, CompanyId = request.CompanyId }); _registerEmployeeAsUserParametersMapper .Setup(x => x.Map(request)) .Returns(new RegisterEmployeeAsUserParameters { NewUserId = request.NewUserId, Role = new Role { Id = request.RoleId }, Site = new Site { Id = request.SiteId, ClientId = request.CompanyId }, ActioningUser = new UserForAuditing { Id = request.ActioningUserId, CompanyId = request.CompanyId }, CompanyId = request.CompanyId }); //When var results = target.ValidateRegisterAsUser(request); //Then Assert.That(results.IsValid, Is.EqualTo(false)); }
public void Given_valid_request_When_CreateUser_Then_User_IsRegistered_equals_false() { // Given var request = new CreateEmployeeAsUserRequest { CompanyId = 1, EmployeeId = Guid.NewGuid(), NewUserId = Guid.NewGuid(), RoleId = Guid.NewGuid(), SiteId = 66L, ActioningUserId = Guid.NewGuid() }; var employee = new Employee {Id = request.EmployeeId, CompanyId = request.CompanyId}; _employeeRepository .Setup(x => x.GetByIdAndCompanyId(request.EmployeeId, request.CompanyId)) .Returns(() => employee); _registerEmployeeAsUserParametersMapper .Setup(x => x.Map(request)) .Returns(new RegisterEmployeeAsUserParameters { NewUserId = request.NewUserId, Role = new Role { Id = request.RoleId }, Site = new Site { Id = request.SiteId, ClientId = request.CompanyId }, ActioningUser = new UserForAuditing { Id = request.ActioningUserId, CompanyId = request.CompanyId }, CompanyId = request.CompanyId }); var target = CreateEmployeeService(); // When target.CreateUser(request); Assert.IsFalse(employee.User.IsRegistered.Value); }
public void Given_a_user_exists_for_the_employee_When_CreateUser_Then_exception_is_thrown() { // Given var request = new CreateEmployeeAsUserRequest { CompanyId = 1, EmployeeId = Guid.NewGuid(), NewUserId = Guid.NewGuid(), RoleId = Guid.NewGuid(), SiteId = 66L, ActioningUserId = Guid.NewGuid() }; var employee = new Employee { Id = request.EmployeeId, CompanyId = request.CompanyId }; employee.User = new User(); _employeeRepository .Setup(x => x.GetByIdAndCompanyId(request.EmployeeId, request.CompanyId)) .Returns(() => employee); _registerEmployeeAsUserParametersMapper .Setup(x => x.Map(request)) .Returns(new RegisterEmployeeAsUserParameters { NewUserId = request.NewUserId, Role = new Role { Id = request.RoleId }, Site = new Site { Id = request.SiteId, ClientId = request.CompanyId }, ActioningUser = new UserForAuditing { Id = request.ActioningUserId, CompanyId = request.CompanyId }, CompanyId = request.CompanyId }); var target = CreateEmployeeService(); // When target.CreateUser(request); }