public void LoginAsync_WhenLoginDetailsAreIncorrect_ShouldThrow(string name, string email, string password) { //Arrange var sutBuilder = new UserServiceSutBuilder(); var user = sutBuilder.CreateUser(name: name, email: email, password: password); var loginDetails = sutBuilder.CreateLoginDetails(email: email, password: password); var userService = sutBuilder.CreateSut(); //Act & Assert var exception = Assert.ThrowsAsync <ValidationException>(async() => await userService.LoginAsync(loginDetails)); }
public async Task SearchFurUsersAsync_WhenUsersMatchKeyword_ShouldReturnMatchedUsers() { //Arrange var sutBuilder = new UserServiceSutBuilder(); List <User> returnedUsers = new List <User> { sutBuilder.CreateUser(name: "Jack", email: "*****@*****.**", password: "******"), sutBuilder.CreateUser(name: "James", email: "*****@*****.**", password: "******"), }; var userService = sutBuilder.CreateSut(); A.CallTo(() => sutBuilder.UserRepository.SearchNameAndEmailAsync("ja", null, 5)) .Returns(returnedUsers); //Act var resultLogin = await userService.SearchForUsersAsync("ja", null, 5); //Assert resultLogin.ShouldBe(returnedUsers); }
public void AddUserAsync_WhenEmailIsWrong_ShouldThrow(string name, string email) { //Arrange var sutBuilder = new UserServiceSutBuilder(); var user = sutBuilder.CreateUser(name: name, email: email); var user2 = new CreateNewUser { Email = email, Name = name }; var userService = sutBuilder.CreateSut(); //Act & Assert var exception = Assert.ThrowsAsync <ValidationException>(async() => await userService.AddUserAsync(user2)); }
public void GetUserAsync_WhenUserDoesNotExists_ShouldThrow(string name, string email) { //Arrange var sutBuilder = new UserServiceSutBuilder(); var user = sutBuilder.CreateUser(name: name, email: email); var userService = sutBuilder.CreateSut(); var userId = Guid.NewGuid(); A.CallTo(() => sutBuilder.UserRepository.GetByIdAsync(userId)) .Returns <User?>(null); //Act & Assert var exception = Assert.ThrowsAsync <NotFoundException>(async() => await userService.GetUserAsync(userId)); exception.Message.ShouldBe($"User with id ({userId}) does not exist"); }
public void GetUserAsync_WhenUserExists_ShouldReturnUser(string name, string email) { //Arrange var sutBuilder = new UserServiceSutBuilder(); var user = sutBuilder.CreateUser(name: name, email: email); var userService = sutBuilder.CreateSut(); A.CallTo(() => sutBuilder.UserRepository.GetByIdAsync(user.Id)) .Returns(user); //Act var resultLogin = userService.GetUserAsync(user.Id); //Assert resultLogin.Result.Name.ShouldBe(name); resultLogin.Result.Email.ShouldBe(email); }
public async Task LoginAsync_WhenLoginDetailsAreCorrect_ShouldLoginUser(string name, string email, string password) { //Arrange var sutBuilder = new UserServiceSutBuilder(); var user = sutBuilder.CreateUser(name: name, email: email, password: password); var loginDetails = sutBuilder.CreateLoginDetails(email: email, password: password); var userService = sutBuilder.CreateSut(); A.CallTo(() => sutBuilder.UserRepository.GetByEmailAndPasswordAsync(email, A <string> ._)) .Returns(user); //Act var resultLogin = await userService.LoginAsync(loginDetails); //Assert resultLogin.Name.ShouldBe(name); resultLogin.Email.ShouldBe(email); }
public void LoginAsync_WhenUserDoesNotExist_ShouldThrow(string name, string email, string password) { //Arrange var sutBuilder = new UserServiceSutBuilder(); var user = sutBuilder.CreateUser(name: name, email: "*****@*****.**", password: password); var loginDetails = sutBuilder.CreateLoginDetails(email: email, password: password); var userService = sutBuilder.CreateSut(); A.CallTo(() => sutBuilder.UserRepository.GetByIdAsync(user.Id)) .Returns <User?>(null); A.CallTo(() => sutBuilder.UserRepository.GetByEmailAndPasswordAsync(email, A <string> ._)) .Returns <User?>(null); //Act & Assert var exception = Assert.ThrowsAsync <UnauthorizedException>(async() => await userService.LoginAsync(loginDetails)); exception.Message.ShouldBe($"Username or password is incorrect"); }