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)));
        }
예제 #4
0
        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));
            }
        }
예제 #5
0
 public ApplicationUser MapCompanyRegistartionViewModelToApplicationUser(CompanyRegistartionViewModel companyRegistartionViewModel)
 {
     return(_mapper.Map <ApplicationUser>(companyRegistartionViewModel));
 }