public async Task Return_Token_After_Authenticated_User_Successfully() { var options = DbContextHelper.GetTestInMemoryDatabase(nameof(Return_Token_After_Authenticated_User_Successfully)); var password = "******"; var passwordHash = Guid.NewGuid().ToString(); using (var context = new NoteTakerContext(options, httpContextAccessor.Object)) { context.Users.Add(new User("JohnSmith", "John", "Smith", passwordHash)); context.SaveChanges(); } using (var context = new NoteTakerContext(options, httpContextAccessor.Object)) { passwordHashingService.Setup(x => x.VerifyPassword(It.Is <string>(y => y.Equals(password)), It.Is <string>(y => y.Equals(passwordHash)))).Returns(true).Verifiable(); tokenService.Setup(x => x.GetToken(It.IsAny <string>(), It.IsAny <string>())).Returns(Guid.NewGuid().ToString).Verifiable(); var usersService = new UsersService(context, logger, passwordHashingService.Object, tokenService.Object); var authenticatedUser = await usersService.AuthenticateAsync("JohnSmith", password); authenticatedUser.Should().NotBeNull(); authenticatedUser.Token.Should().NotBeNull(); passwordHashingService.Verify(); tokenService.Verify(); } }
public async Task Return_Null_After_Failed_Authentication() { var options = DbContextHelper.GetTestInMemoryDatabase(nameof(Return_Null_After_Failed_Authentication)); using (var context = new NoteTakerContext(options, httpContextAccessor.Object)) { context.Users.Add(new User("JohnSmith", "John", "Smith", Guid.NewGuid().ToString())); context.SaveChanges(); } using (var context = new NoteTakerContext(options, httpContextAccessor.Object)) { passwordHashingService.Setup(x => x.VerifyPassword(It.IsAny <string>(), It.IsAny <string>())).Returns(false).Verifiable(); var usersService = new UsersService(context, logger, passwordHashingService.Object, tokenService.Object); var authenticatedUser = await usersService.AuthenticateAsync("JohnSmith", "Apples"); authenticatedUser.Should().BeNull(); passwordHashingService.Verify(); } }