public void ResetPasswordRequest() { UserService target = CreateNewUserService(); string userName = "******"; var user = (User)target.GetByUserNameT(userName); UserResetPasswordRequestSP p = new UserResetPasswordRequestSP() { EmailOrPhoneNumber = user.Email }; target.ResetPasswordRequest(p); var userAfterRequest = target.GetByIDT(user.UserID); Assert.IsTrue(userAfterRequest.ResetPasswordCode != null); Assert.IsTrue((DateTime.UtcNow - user.ResetPasswordRequestDate.Value).TotalSeconds < 30); AssertNotificationExists(user.UserID, EntityEnums.NotificationTemplateEnum.ResetPasswordRequest); }
/// <summary> /// checks Reset password business rules /// </summary> /// <param name="p">check password parameters</param> /// <param name="u">user information</param> public void ResetPasswordRequest(UserResetPasswordRequestSP p, User u) { if (u == null) { throw new BRException(BusinessErrorStrings.User.ResetPasswordNoUserFound); } if (FWUtils.ConfigUtils.GetAppSettings().Project.IsDebug == false) { // not checking request delay only in debug mode because of test cases int resetPasswordWaitSeconds = FWUtils.ConfigUtils.GetAppSettings().Project.ResetPasswordNewRequestWaitSeconds; if (u.ResetPasswordRequestDate != null) { var diff = DateTime.UtcNow - u.ResetPasswordRequestDate.Value; if (diff.TotalSeconds < resetPasswordWaitSeconds) { throw new BRException(string.Format(BusinessErrorStrings.User.ResetPasswordTooSoon, Math.Ceiling((double)resetPasswordWaitSeconds / 60), Math.Ceiling((double)diff.TotalSeconds / 60)) + 1); } } } }