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();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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));
        }