public static UserDto GetUserByEmail(string userEmail) { var queryObject = new GetUserByEmailQuery(userEmail); var handler = new GetUserByEmailQueryHandler(); UserDto user = handler.Handle(queryObject).Result; return(user); }
public async Task GetUserByEmail_UserDoesNotExist_ThrowsNotFoundException() { var sut = new GetUserByEmailQueryHandler(_context); await sut.Handle(new GetUserByEmailQuery { Email = "*****@*****.**" }, CancellationToken.None) .ShouldThrowAsync <NotFoundException>(); }
public async Task GetUserByEmail_UserExists_ReturnsUserViewModel() { var sut = new GetUserByEmailQueryHandler(_context); var user = _context.User.First(); var result = await sut.Handle(new GetUserByEmailQuery { Email = user.Email }, CancellationToken.None); result.ShouldBeOfType <UserViewModel>(); result.Email.ShouldBe(user.Email); }
public static ValidateUserResponse ValidateUser(string useremail, string password) { var response = new ValidateUserResponse { Validated = false }; //1 - Decode the username (which is user email) //and the password Encoding encoding = Encoding.GetEncoding("iso-8859-1"); var decodedUserEmail = encoding.GetString(Convert.FromBase64String(useremail)); var decodedPassword = encoding.GetString(Convert.FromBase64String(password)); //2 - get the user by username (email address) only var emailQueryObject = new GetUserByEmailQuery(decodedUserEmail); var emailQueryHandler = new GetUserByEmailQueryHandler(); var byEmailOnlyUser = emailQueryHandler.Handle(emailQueryObject).Result; if (byEmailOnlyUser == null) { return(response); } //get salt associated with this user account var saltBytes = Convert.FromBase64String(byEmailOnlyUser.Salt); //append salt to password var passwordAndSalt = decodedPassword + Convert.ToBase64String(saltBytes); //hash the password using the salt var pbkdf2 = new Rfc2898DeriveBytes(passwordAndSalt, saltBytes, 10000); byte[] hashPassword = pbkdf2.GetBytes(32); //we check the hashed user given password against the hashedPassword stored for the user var hashedPasswordString = Convert.ToBase64String(hashPassword); var dbPassword = byEmailOnlyUser.PasswordHash; if (string.Compare(dbPassword, hashedPasswordString) != 0) { return(response); } if (byEmailOnlyUser != null) { response.UserId = byEmailOnlyUser.UserId; response.Validated = true; } return(response); }
public async Task GetUserByEmail_ShouldReturnValidUser( [Frozen] Mock <IRepository <User> > mockRepository, List <User> users, GetUserByEmailQueryHandler sut) { // Arrange var mockList = users.AsQueryable().BuildMock(); mockRepository.Setup(x => x.GetAll()).Returns(mockList.Object); var firstUser = users.First(); // Act var result = await sut.Handle(new GetUserByEmailQuery { Email = firstUser.EmailAddress }, CancellationToken.None); // Assert Assert.NotNull(result); Assert.Equal(firstUser.EmailAddress, result.EmailAddress); mockRepository.Verify(x => x.GetAll(), Times.Once); }
public GetUserByEmailTest() { // Arrange Context = ContextFactory.Create(); Handler = new GetUserByEmailQueryHandler(Context); }
public void SetUp() { _userCollection = Database.GetCollection <UserEntity>("User"); _classUnderTests = new GetUserByEmailQueryHandler(Database); }