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);
        }
Example #2
0
        /// <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);
                    }
                }
            }
        }