public async Task AddUserAsync_WhenAllInformationIsCorrect_ShouldReturnUserWithToken(string name, string email, string password) { var sutBuilder = new UserServiceSutBuilder(); var loginDetails = sutBuilder.CreateLoginDetails(email: email, password: password); var user2 = new CreateNewUser { Email = email, Name = name, Password = password, }; var user = user2.ToUser(); var userService = sutBuilder.CreateSut(); A.CallTo(() => sutBuilder.UserRepository.GetByEmailAndPasswordAsync(email, Hasher.GetHashed(password))) .Returns(user); A.CallTo(() => sutBuilder.UserRepository.AddAsync(A <User> .That.Matches(passedUser => passedUser.Name == user.Name && passedUser.Password == Hasher.GetHashed(user.Password) && passedUser.Email == user.Email))) .Returns(user); //Act var resultLogin = await userService.AddUserAsync(user2); //Assert resultLogin.Name.ShouldBe(name); resultLogin.Email.ShouldBe(email); }
public async Task <User> AddUserAsync(CreateNewUser newUserData) { newUserData.Validate(); var user = newUserData.ToUser(); user.Password = Hasher.GetHashed(user.Password); var addedUser = await userRepository.AddAsync(user); return(await LoginAsync(new LoginDetails() { Email = addedUser.Email, Password = newUserData.Password })); }