public async Task Handle_ReturnsUser_WhenUsernameCasesDontMatch() { //arrange const string expectedUsername = "******"; const RoleEnum expectedRole = default; const string password = "******"; var user = new User { Username = expectedUsername, Password = BCrypt.Net.BCrypt.EnhancedHashPassword(password, 4), Role = expectedRole }; DbContext.Users.Add(user); await DbContext.SaveChangesAsync(); var query = new LogInQuery(expectedUsername.ToUpper(), password); //act GetUserViewModel?actual = await _handler.Handle(query); //assert Assert.Equal(user.Id, actual.Id); Assert.Equal(expectedUsername, actual.Username); Assert.Equal(expectedRole, actual.Role); }
public async Task <IActionResult> Login([FromBody] AuthLogIn credenziali) { var query = new LogInQuery() { Username = credenziali.username, Password = credenziali.password }; try { var utente = (Utente)this._handler.Handle(query).User; if (utente == null) { return(Unauthorized()); } return(Ok(utente)); } catch (Exception ex) { if (ex.Message.Contains("no element")) { return(StatusCode(404, "Credenziali errate")); } return(BadRequest(ex.Message)); } }
public async Task <IActionResult> Login([FromBody] AuthLogIn crenenziali) { var headerValues = Request.Headers["HubConnectionId"]; string ConId = headerValues.FirstOrDefault(); var query = new LogInQuery() { Username = crenenziali.username, Password = crenenziali.password }; try { var utente = (Utente)this._handler.Handle(query).User; if (utente == null) { return(Unauthorized()); } await _NotificationHub.Clients.Client(ConId).SendAsync("NotifyAuth", utente); return(Ok(utente)); } catch { return(BadRequest()); } }
public async Task ValidateAsync_ReturnsValid_WhenPasswordAndUsernameHaveValue() { //arrange var query = new LogInQuery("Value", "Value"); //act ValidationResult?actual = await _validator.ValidateAsync(query); //assert Assert.True(actual.IsValid); }
public async Task Handle_ThrowsLoginFailedException_WhenThereIsNoPasswordAgainstTheUsername() { //arrange var query = new LogInQuery("TestUsername", "TestPassword"); //act + assert await Assert.ThrowsAsync <LoginFailedException>(async() => { await _handler.Handle(query); }); }
public async Task ValidateAsync_ReturnsNotValid_WhenEitherPasswordOrUsernameAreEmpty(string username, string password) { //arrange var query = new LogInQuery(username, password); //act ValidationResult?actual = await _validator.ValidateAsync(query); //assert Assert.False(actual.IsValid); }
public async Task Handle_ThrowsLoginFailedException_WhenThereIsNoMatchingUsernameInTheDatabase() { //arrange const string username = "******"; DbContext.Users.Add(new User { Username = username }); await DbContext.SaveChangesAsync(); var query = new LogInQuery(username, "TestPassword"); //act + assert await Assert.ThrowsAsync <LoginFailedException>(async() => { await _handler.Handle(query); }); }
public async Task Handle_ThrowsLoginFailedException_WhenPasswordsDoNotMatch() { //arrange const string username = "******"; const string password = "******"; DbContext.Users.Add(new User { Username = username, Password = BCrypt.Net.BCrypt.EnhancedHashPassword(password) }); await DbContext.SaveChangesAsync(); var query = new LogInQuery(username, "WrongPassword"); //act + assert await Assert.ThrowsAsync <LoginFailedException>(async() => { await _handler.Handle(query); }); }
public async Task Handle_ReturnsUser(int amount, int index, RoleEnum expectedRole) { //arrange const string expectedUsername = "******"; const string password = "******"; var user = new User(); for (var i = 0; i < amount; i++) { if (i == index) { user = new User { Username = expectedUsername, Password = BCrypt.Net.BCrypt.EnhancedHashPassword(password, 4), Role = expectedRole }; DbContext.Users.Add(user); await DbContext.SaveChangesAsync(); } else { DbContext.Users.Add(new User { Username = i.ToString(), Password = BCrypt.Net.BCrypt.EnhancedHashPassword(i.ToString(), 4) }); } } await DbContext.SaveChangesAsync(); var query = new LogInQuery(expectedUsername, password); //act GetUserViewModel?actual = await _handler.Handle(query); //assert Assert.Equal(user.Id, actual.Id); Assert.Equal(expectedUsername, actual.Username); Assert.Equal(expectedRole, actual.Role); }
public async Task <IActionResult> Login([FromBody] AuthLogIn credenziali) { var query = new LogInQuery() { Username = credenziali.username, Password = credenziali.password }; try { var CasAbilitato = _config.GetSection("CasTest").Value; if (CasAbilitato.Equals("true")) { var utente = (Utente)this._handler.Handle(query).User; if (utente == null) { return(StatusCode(403, new { message = Costanti.UtenteNonAutorizzato })); } return(Ok(utente)); } else { return(StatusCode(403, new { message = Costanti.UtenteNonAutorizzato })); } } catch (Exception ex) { if (ex.Message.Contains("no element")) { return(StatusCode(404, new { message = "Le credenziali inserite non risultano corrette" })); } return(BadRequest(new { message = ex.Message })); } }
public async Task <IActionResult> Login([FromBody] AuthLogIn credenziali) { var query = new LogInQuery() { Username = credenziali.username, Password = credenziali.password }; try { var utente = (Utente)this._handler.Handle(query).User; if (utente == null) { return(Unauthorized()); } return(Ok(utente)); } catch { return(BadRequest()); } }