public async Task InvalidPassword_ShouldReturnInvalidPasswordError() { //Arrange IRepository repository = new InMemoryDbContextFactory().GetDbContext(); var myConfiguration = new Dictionary <string, string> { { "Secret", "SUPERSECRETTESTSTRING" }, }; var configuration = new ConfigurationBuilder() .AddInMemoryCollection(myConfiguration) .Build(); var authorizationProvider = new AuthorizationProvider(repository, configuration); var userInDb = new User(new RegisterUserDto { Email = "*****@*****.**", Name = "test", Password = "******" }); await userInDb.Register(repository); var userLogin = new LoginUserDto { Email = "*****@*****.**", Password = "******" }; //Act var result = await authorizationProvider.Authenticate(userLogin); //Assert Assert.AreEqual(UserErrorMessages.InvalidPassword, result.ErrorMessage); }
public async Task <IActionResult> Authenticate([FromBody] LoginUserDto loginUserDto) { var result = await _authorizationProvider.Authenticate(loginUserDto); if (result.HasError) { return(BadRequest(result)); } return(Ok(result)); }
public async Task ValidPassword_ShouldReturnLoggedInUser() { //Arrange IRepository repository = new InMemoryDbContextFactory().GetDbContext(); var myConfiguration = new Dictionary <string, string> { { "Secret", "SUPERSECRETTESTSTRING" }, }; var configuration = new ConfigurationBuilder() .AddInMemoryCollection(myConfiguration) .Build(); var authorizationProvider = new AuthorizationProvider(repository, configuration); var userInDb = new User(new RegisterUserDto { Email = "*****@*****.**", Name = "test", Password = "******" }); await userInDb.Register(repository); var userLogin = new LoginUserDto { Email = "*****@*****.**", Password = "******" }; //Act var result = await authorizationProvider.Authenticate(userLogin); //Assert Assert.AreEqual(userInDb.Email, result.Value.Email); Assert.AreEqual(userInDb.Role.ToString(), result.Value.Role); Assert.IsNotEmpty(result.Value.Token); }