public AccountCredentialsViewModel LoginUser(LoginUserBindingModel bm) { string tokenBearer = string.Empty; Guid userId = Guid.Empty; string name = string.Empty; string email = string.Empty; try { var user = this.Context .Users .Where(u => u.Email == bm.Email) .First(); // taking the user data to send it to the client userId = user.Id; name = user.Name; email = user.Email; var passwordHash = GenerateHashOfPassword(bm.Password, user.Salt); if (user.PasswordHash == passwordHash) { tokenBearer = GenerateToken(); TokenManager newToken = new TokenManager() { Value = tokenBearer, CreatedOn = DateTime.Now, }; newToken.User = user; this.Context.Tokens.Add(newToken); this.Context.SaveChanges(); } else { return(null); } } catch (Exception) { return(null); } AccountCredentialsViewModel viewModel = new AccountCredentialsViewModel() { UserId = userId, Token = tokenBearer, Name = name, Email = email }; return(viewModel); }
public void Post_RegisterAndLogin_ShouldReturnStatusCode201() { // Arrange var userId = "12354321-3123-1122-4332-123456789231"; var bidingModel = new RegisterUserBindingModel() { Name = "Gosho", Email = "*****@*****.**", Password = "******", ConfirmPassword = "******" }; var userCredentials = new AccountCredentialsViewModel() { UserId = new Guid(userId), Token = "Token-Token-Token" }; var serviceMock = new Mock <IAccountService>(); serviceMock .Setup(s => s.CreateNewUserAccount(bidingModel)) .Returns(userCredentials); var loggerMock = new Mock <ILogger>(); var controller = new AccountController(serviceMock.Object, loggerMock.Object); // Act var response = controller.RegisterAndLogin(bidingModel); // Assert Assert.NotNull(response); Assert.IsType <OkObjectResult>(response); var result = response as OkObjectResult; var model = result.Value as AccountCredentialsViewModel; var modelId = model.UserId; Assert.Equal(new Guid(userId), modelId); }
public void LoginUser_CalledWithRelevantInputData_ShouldReturnTokenBearer() { // Arrange var userCredentials = new AccountCredentialsViewModel(); var db = this.GetDatabase(); var service = new AccountService(db); RegisterUserBindingModel bm = new RegisterUserBindingModel() { Name = "Gosho", Email = "*****@*****.**", Password = "******", ConfirmPassword = "******" }; LoginUserBindingModel loginForm = new LoginUserBindingModel() { Email = "*****@*****.**", Password = "******" }; // Act var isUserCreated = service.CreateNewUserAccount(bm); if (isUserCreated != null) { userCredentials = service.LoginUser(loginForm); } // Assert Assert.NotNull(userCredentials); var userId = userCredentials.UserId; Assert.IsType <Guid>(userId); Assert.NotEqual(0, userId.ToString().Length); var token = userCredentials.Token; Assert.NotEqual(0, token.Length); }