GivenRefreshTokenQueryHandler_WhenCorrectQueryReceived_ThenShouldCallJwtGeneratorToCreateRefreshToken() { _user.RefreshToken = _fixture.UserRefreshToken; _mockUserManager.FindByEmailAsync(_query.Email).ReturnsForAnyArgs(_user); var refreshTokenQueryHandler = new RefreshTokenQueryHandler(_mockUserManager, _mockJwtGenerator, _mockEventBus); await refreshTokenQueryHandler.Handle(_query, CancellationToken.None); _mockJwtGenerator.Received().GenerateRefreshToken(); }
GivenConfirmEmailCommandHandler_WhenEmailConfirmed_ThenShouldCallJwtGenerator() { _mockUserManager.FindByIdAsync(_userId).ReturnsForAnyArgs(_user); _mockUserManager.ConfirmEmailAsync(_user, _emailConfirmationToken) .ReturnsForAnyArgs(Task.FromResult(IdentityResult.Success)); var confirmEmailCommandHandler = new ConfirmEmailCommandHandler(_mockUserManager, _mockJwtGenerator, _mockEventBus, _mockFailedIdentityResult); await confirmEmailCommandHandler.Handle(_command, CancellationToken.None); _mockJwtGenerator.Received().CreateToken(_user); _mockJwtGenerator.Received().GenerateRefreshToken(); }
public async Task AuthorizeUserPasswordHandler_ValidatePassword_AgainstUserHashedPassword() { // Arrange var password = _fixture.Create <string>(); var token = _fixture.Create <string>(); var users = _fixture.VolunteerBuilder().WithPassword(password).CreateMany(10); var usersList = users.AsQueryable().BuildMockDbSet(); _databaseContext.Users.Returns(usersList); _passwordHasher.VerifyHashedPassword(null, Arg.Any <string>(), Arg.Any <string>()).Returns(PasswordVerificationResult.Success); _jwtGenerator.Generate(Arg.Any <User>()).Returns(token); var usedUser = users.First(); // Act var result = await _sut.Handle(new AuthorizeUserPasswordRequest { Login = usedUser.Email, Password = password }, default); // Assert result.Token.Should().NotBeNullOrWhiteSpace(); result.Token.Should().Be(token); _passwordHasher.Received(1).VerifyHashedPassword(null, Arg.Any <string>(), Arg.Any <string>()); _passwordHasher.Received(1).VerifyHashedPassword(null, usedUser.PasswordHash, password); _jwtGenerator.Received(1).Generate(Arg.Any <User>()); _jwtGenerator.Received(1).Generate(Arg.Is <User>(u => u.UserId == usedUser.UserId && u.Role == usedUser.Role)); }