public async Task CompanyRegistration_ReturnsRedirectToAction_ForValidModelAndUnsuccessfulCreateAsync() { //Arrange var model = new CompanyRegistartionViewModel { Password = "******", ConfirmPassword = "******", Adress = "Adress", City = "City", Country = "Country", ZipCode = "12345", Email = "*****@*****.**", CompanyName = "CompanyName", NIP = "0000000000", Regon = "000000000", }; mockUserManager.Setup(s => s.CreateAsync(It.IsAny <ApplicationUser>(), model.Password)) .ReturnsAsync(IdentityResult.Failed()); //Act var result = await _controller.CompanyRegistration(model); //Assert var redirectToAction = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("Error", redirectToAction.ActionName); Assert.Equal("Error", redirectToAction.ControllerName); mockLogger.Verify( x => x.Log( It.Is <LogLevel>(l => l == LogLevel.Warning), It.IsAny <EventId>(), It.Is <It.IsAnyType>((v, t) => v.ToString() == "Can't create Company user, something wrong with User Identity"), It.IsAny <Exception>(), It.Is <Func <It.IsAnyType, Exception, string> >((v, t) => true))); }
public async Task CompanyRegistration_ReturnsRedirectToAction_ForValidModelAndSuccessfulCreateAsync() { //Arrange var model = new CompanyRegistartionViewModel { Password = "******", ConfirmPassword = "******", Adress = "Adress", City = "City", Country = "Country", ZipCode = "12345", Email = "*****@*****.**", CompanyName = "CompanyName", NIP = "0000000000", Regon = "000000000", }; mockUserManager.Setup(s => s.CreateAsync(It.IsAny <ApplicationUser>(), model.Password)) .ReturnsAsync(IdentityResult.Success); //Act var result = await _controller.CompanyRegistration(model); //Assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("Success", redirectToActionResult.ActionName); Assert.Equal("Success", redirectToActionResult.ControllerName); }
public async Task CompanyRegistration_ReturnsAViewResult_ForInvalidModel() { //Arrange var model = new CompanyRegistartionViewModel { Password = "******", ConfirmPassword = "******", Adress = "Adress", City = "City", Country = "Country", ZipCode = "12345", Email = "*****@*****.**", CompanyName = "CompanyName", NIP = "0000000000", Regon = "000000000", }; _controller.ModelState.AddModelError("error", "some error"); //Act var result = await _controller.CompanyRegistration(model); //Assert Assert.IsType <ViewResult>(result); mockLogger.Verify( x => x.Log( It.Is <LogLevel>(l => l == LogLevel.Warning), It.IsAny <EventId>(), It.Is <It.IsAnyType>((v, t) => v.ToString() == "While creating user occur invalid model"), It.IsAny <Exception>(), It.Is <Func <It.IsAnyType, Exception, string> >((v, t) => true))); }
public async Task <IActionResult> CompanyRegistration(CompanyRegistartionViewModel model) { if (ModelState.IsValid) { var user = _mapper.MapCompanyRegistartionViewModelToApplicationUser(model); var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { if (!_roleManager.Roles.Any(x => x.Name == "Client")) { var role = new IdentityRole { Name = ERole.Client.ToString() }; await _roleManager.CreateAsync(role); } await _userManager.AddToRoleAsync(user, ERole.Client.ToString()); var noti = new ClientNotifications { CreatedDate = DateTime.Now, ToClientId = user.Id, FromRole = ERole.Admin, IsRead = false, NotiBody = "Hello " + user.CompanyName + " in our system!", NotiHeader = "Welcome ;)" }; try { _context.ClientNotifications.Add(noti); _context.SaveChanges(); } catch (Exception ex) { _logger.LogError("Error within saveing notification after registration", ex); } return(RedirectToAction("Success", "Success")); } else { _logger.LogWarning("Can't create Company user, something wrong with User Identity"); return(RedirectToAction("Error", "Error")); } } else { _logger.LogWarning("While creating user occur invalid model"); return(View(model)); } }
public ApplicationUser MapCompanyRegistartionViewModelToApplicationUser(CompanyRegistartionViewModel companyRegistartionViewModel) { return(_mapper.Map <ApplicationUser>(companyRegistartionViewModel)); }