public void GetPasswordResetTokensUsedNotNotified_SomeNotNotified_OnlyNotNotified() { var token2 = new UserPasswordResetToken() { Code = Guid.NewGuid(), UserId = 2 }; m_tokenRepository.Add(token2); var token3 = new UserPasswordResetToken() { Code = Guid.NewGuid(), UserId = 3 }; m_tokenRepository.Add(token3); m_unitOfWork.Commit(); var actual = m_target.GetPasswordResetTokensUsedNotNotified().ToList(); Assert.AreEqual(0, actual.Count); token2.Used = true; actual = m_target.GetPasswordResetTokensUsedNotNotified().ToList(); Assert.AreEqual(1, actual.Count); token3.Used = true; actual = m_target.GetPasswordResetTokensUsedNotNotified().ToList(); Assert.AreEqual(2, actual.Count); m_target.MarkPasswordResetTokenAsNotifiedUse(token3.Id); actual = m_target.GetPasswordResetTokensUsedNotNotified().ToList(); Assert.AreEqual(1, actual.Count); }
public void InitializeTest() { UserPasswordService.PasswordResetTokenMinutesTimeout = 10; m_unitOfWork = new MemoryUnitOfWork(); m_userService = MockRepository.GenerateMock<IUserService>(); var tokenId = 0; m_tokenRepository = new MemoryRepository<UserPasswordResetToken>(m_unitOfWork, (o) => ++tokenId); var token = new UserPasswordResetToken() { Code = Guid.NewGuid(), UserId = 3 }; m_tokenRepository.Add(token); var historyId = 0; m_historyRepository = new MemoryRepository<UserPasswordHistory>(m_unitOfWork, (o) => ++historyId); m_target = new UserPasswordService(m_tokenRepository, m_historyRepository, m_userService); m_userService.Expect(e => e.GetById(1)).Return(new User() { Id = 1, Password = m_target.Encrypt("11"), Email = "*****@*****.**" }); m_userService.Expect(e => e.GetById(2)).Return(new User() { Id = 2, Password = m_target.Encrypt("22"), Email = "*****@*****.**" }); m_userService.Expect(e => e.GetById(3)).Return(new User() { Id = 3, Password = m_target.Encrypt("33"), Email = "*****@*****.**" }); m_userService.Expect(e => e.GetByEmail("*****@*****.**")).Return(new User() { Id = 1, Password = m_target.Encrypt("11"), Email = "*****@*****.**" }); m_userService.Expect(e => e.GetByEmail("*****@*****.**")).Return(new User() { Id = 2, Password = m_target.Encrypt("22"), Email = "*****@*****.**" }); m_userService.Expect(e => e.GetByEmail("*****@*****.**")).Return(new User() { Id = 3, Password = m_target.Encrypt("33"), Email = "*****@*****.**" }); m_unitOfWork.Commit(); }
/// <summary> /// Realiza a geração de um token para redefinição de senha do usuário com o e-mail informado. /// </summary> /// <param name="email">O e-mail do usuário.</param> /// <returns>O token gerado.</returns> public UserPasswordResetToken GeneratePasswordResetToken(string email) { ExceptionHelper.ThrowIfNull("email", email); var user = m_userService.GetByEmail(email); if (user == null) { throw new ArgumentException(Texts.ThereIsNoUserWithThisEmail); } var oldToken = m_tokenRepository.FindFirst(t => t.UserId.Equals(user.Id)); if (oldToken != null) { m_tokenRepository.Remove(oldToken); } var newToken = new UserPasswordResetToken() { UserId = user.Id, Code = Guid.NewGuid() }; m_tokenRepository.Add(newToken); return newToken; }