public async Task Should_UseUserManager_ToResetPassword_UsingPasswordResetToken() { // Arrange var resetPasswordDto = new ResetPasswordDto { Email = "*****@*****.**", Password = "******", PasswordResetToken = "123xyz" }; var userMock = new Mock <ApplicationUser>(); userMock.Setup(m => m.Email).Returns(resetPasswordDto.Email); var store = new Mock <IUserStore <ApplicationUser> >(); var userManagerMock = new Mock <UserManager <ApplicationUser> >(store.Object, null, null, null, null, null, null, null, null); userManagerMock.Setup(m => m.FindByEmailAsync(resetPasswordDto.Email)).Returns(Task.FromResult(userMock.Object)); userManagerMock.Setup(m => m.ResetPasswordAsync(userMock.Object, resetPasswordDto.PasswordResetToken, resetPasswordDto.Password)).Returns(Task.FromResult(IdentityResult.Success)); var sut = new ResetPasswordService(userManagerMock.Object); // Act await sut.ResetPassword(resetPasswordDto); // Assert userManagerMock.Verify(m => m.ResetPasswordAsync(userMock.Object, resetPasswordDto.PasswordResetToken, resetPasswordDto.Password), Times.Once); }
public async Task Should_HaveErrors_When_UserNotFound() { // Arrange var resetPasswordDto = new ResetPasswordDto { Email = "*****@*****.**", Password = "******" }; var userMock = new Mock <ApplicationUser>(); userMock.Setup(m => m.Email).Returns(resetPasswordDto.Email); var store = new Mock <IUserStore <ApplicationUser> >(); var userManagerMock = new Mock <UserManager <ApplicationUser> >(store.Object, null, null, null, null, null, null, null, null); userManagerMock.Setup(m => m.FindByEmailAsync(resetPasswordDto.Email)).Returns(Task.FromResult((ApplicationUser)null)); var sut = new ResetPasswordService(userManagerMock.Object); // Act await sut.ResetPassword(resetPasswordDto); // Assert sut.Status.HasErrors.ShouldBeTrue(); }
public ActionResult PerformInitialResetPassword(InitialResetPasswordModel model) { if (ModelState.IsValid == false) { return(CurrentUmbracoPage()); } var existingMember = Services.MemberService.GetByEmail(model.EmailAddress); if (existingMember == null) { ModelState.AddModelError("Model", "Unable to find user with provided email address."); return(CurrentUmbracoPage()); } var config = ResetPasswordConfiguration.GetConfig(); var requestService = new PetaPocoResetPasswordRequestService(ApplicationContext.DatabaseContext, config); var service = new ResetPasswordService(Services.MemberService, requestService); Guid token; if (service.TryCreateInitialRequest(existingMember, out token) == false) { ModelState.AddModelError("Model", "Unable to reset password at this time."); return(CurrentUmbracoPage()); } var notificationService = new ResetPasswordEmailNotificationService(config); notificationService.SendInitialRequestEmail(existingMember, token, CurrentPage); TempData.SetSuccessFlag(SuccessFlags.InitialResetPasswordRequestSuccess); return(RedirectToCurrentUmbracoPage()); }
public ActionResult RestPass(RecoverPass_VM recoverPass_VM) { if (recoverPass_VM.NewPassword == "" || recoverPass_VM.NewPassword == null) { return(View("Index")); } if (recoverPass_VM.NewPassword != recoverPass_VM.ConfirmedPassword) { ViewBag.ErrorMessage = "Please make shure Passowrds are matched"; return(View("Index")); } else { // Update User Row With new password. string Email = EncryptDecryptString.Decrypt(Request.Url.Segments.Last(), "Taj$$Key"); ResetPasswordService ResetService = new ResetPasswordService(); var Model = new RegisterViewModel { Email = Email, Password = EncryptDecryptString.Encrypt(recoverPass_VM.NewPassword, "Taj$$Key") }; Model.IsActive = null; Model.Mobile = null; Model.Phone = null; Model.UserID = null; Model.Username = null; int Result = ResetService.Update(Model); if (Result < 0) { ViewBag.ErrorMessage = _GlobalizationManager.GetTranslatedText("There is an Error while recovering your password", Enum_LangModule.MaskanWeb, "84"); return(View("Index")); } else { ViewBag.ErrorMessage = _GlobalizationManager.GetTranslatedText("Your password successfully recovered, Please login with your new password.", Enum_LangModule.MaskanWeb, "83"); return(View("Index")); } } }
public ActionResult PerformResetPassword(ResetPasswordModel model, string requestToken) { if (ModelState.IsValid == false) { return(CurrentUmbracoPage()); } var config = ResetPasswordConfiguration.GetConfig(); var requestService = new PetaPocoResetPasswordRequestService(ApplicationContext.DatabaseContext, config); var service = new ResetPasswordService(Services.MemberService, requestService); var request = requestService.Get(requestToken); if (service.IsRequestTokenValid(requestToken) == false) { return(PartialView("~/Views/Partials/ResetPassword/InvalidRequestToken.cshtml")); } var existingMember = service.GetMemberByRequest(request); if (service.ResetPassword(existingMember, request, model.NewPassword) == false) { ModelState.AddModelError("Model", "Unable to reset password at this time."); return(CurrentUmbracoPage()); } var notificationService = new ResetPasswordEmailNotificationService(config); notificationService.SendCompletedRequestEmail(existingMember, CurrentPage); TempData.SetSuccessFlag(SuccessFlags.CompletedResetPasswordSuccess); return(RedirectToCurrentUmbracoPage()); }
public ResetPasswordServiceTests() { _userService = A.Fake <IUserService>(); _passwordManagementService = A.Fake <IPasswordManagementService>(); _messageParser = A.Fake <IMessageParser <ResetPasswordMessageTemplate, User> >(); _resetPasswordService = new ResetPasswordService(_userService, _passwordManagementService, _messageParser); }
protected void Button1_Click(object sender, EventArgs e)//密码重置 { ResetPasswordService port = new ResetPasswordService(); port.ClientCertificates.Add(certificate); String ruslet = port._ResetPassword("100001", "2", "18616562850", "415086", 1); MsgBox(ruslet); }
public ResetPasswordServiceTests() { _userManagementService = A.Fake <IUserManagementService>(); _passwordManagementService = A.Fake <IPasswordManagementService>(); _userLookup = A.Fake <IUserLookup>(); _resetPasswordService = new ResetPasswordService(_userManagementService, _passwordManagementService, _userLookup); }
public void ResetPassword_Controller_Put_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { ResetPasswordController resetPasswordController = new ResetPasswordController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(resetPasswordController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, resetPasswordController.DatabaseType); ResetPassword resetPasswordLast = new ResetPassword(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { Query query = new Query(); query.Language = LanguageRequest; ResetPasswordService resetPasswordService = new ResetPasswordService(query, db, ContactID); resetPasswordLast = (from c in db.ResetPasswords select c).FirstOrDefault(); } // ok with ResetPassword info IHttpActionResult jsonRet = resetPasswordController.GetResetPasswordWithID(resetPasswordLast.ResetPasswordID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <ResetPassword> Ret = jsonRet as OkNegotiatedContentResult <ResetPassword>; ResetPassword resetPasswordRet = Ret.Content; Assert.AreEqual(resetPasswordLast.ResetPasswordID, resetPasswordRet.ResetPasswordID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Put to return success IHttpActionResult jsonRet2 = resetPasswordController.Put(resetPasswordRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <ResetPassword> resetPasswordRet2 = jsonRet2 as OkNegotiatedContentResult <ResetPassword>; Assert.IsNotNull(resetPasswordRet2); BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult; Assert.IsNull(badRequest2); // Put to return CSSPError because ResetPasswordID of 0 does not exist resetPasswordRet.ResetPasswordID = 0; IHttpActionResult jsonRet3 = resetPasswordController.Put(resetPasswordRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet3); OkNegotiatedContentResult <ResetPassword> resetPasswordRet3 = jsonRet3 as OkNegotiatedContentResult <ResetPassword>; Assert.IsNull(resetPasswordRet3); BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult; Assert.IsNotNull(badRequest3); } } }
public IHttpActionResult GetResetPasswordList([FromUri] string lang = "en", [FromUri] int skip = 0, [FromUri] int take = 200, [FromUri] string asc = "", [FromUri] string desc = "", [FromUri] string where = "", [FromUri] string extra = "") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { ResetPasswordService resetPasswordService = new ResetPasswordService(new Query() { Lang = lang }, db, ContactID);
public ResetPasswordProviderMiddleware(RequestDelegate next, IAuthInternalRepository internalRepository, ResetPasswordService resetPasswordService) { _next = next; _resetPasswordService = resetPasswordService; _emailService = new EmailService(); _resetPasswordService = new ResetPasswordService(internalRepository); }
private void SetupTest(ContactModel contactModelToDo, CultureInfo culture, string actionStr) { LanguageEnum languageEnum = (culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en); if (contactModelToDo == null) { user = null; } else { user = new GenericPrincipal(new GenericIdentity(contactModelToDo.LoginEmail, "Forms"), null); } routeData = new RouteData(); routeData.Values.Add("culture", culture); routeData.Values.Add("controller", "Contact"); routeData.Values.Add("action", actionStr); stubHttpContext = new StubHttpContextBase(); stubHttpRequestBase = new StubHttpRequestBase(); stubHttpContext.RequestGet = () => stubHttpRequestBase; requestContext = new RequestContext(stubHttpContext, routeData); controller = new ContactController(); controller.Url = new UrlHelper(requestContext); controller.ControllerContext = new ControllerContext(stubHttpContext, routeData, controller); stubHttpContext.UserGet = () => user; randomService = new RandomService(languageEnum, user); resetPasswordService = new ResetPasswordService(languageEnum, user); tvItemService = new TVItemService(languageEnum, user); tvItemLinkService = new TVItemLinkService(languageEnum, user); telService = new TelService(languageEnum, user); controller.SetRequestContext(requestContext); Assert.IsNotNull(controller); Assert.AreEqual(2, controller.CultureListAllowable.Count); Assert.AreEqual("en-CA", controller.CultureListAllowable[0]); Assert.AreEqual("fr-CA", controller.CultureListAllowable[1]); Assert.IsNotNull(controller._ContactService); Assert.IsNotNull(controller._RequestContext); Assert.IsNotNull(controller.urlModel); Assert.IsNotNull(culture.Name, controller._RequestContext.RouteData.Values["culture"].ToString()); Assert.IsNotNull("Contact", controller._RequestContext.RouteData.Values["controller"].ToString()); Assert.IsNotNull(actionStr, controller._RequestContext.RouteData.Values["action"].ToString()); Assert.AreEqual((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), controller.LanguageRequest); Assert.AreEqual((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), controller.ViewBag.Language); Assert.AreEqual(culture.Name, controller.CultureRequest); Assert.AreEqual(culture.Name, controller.ViewBag.Culture); if (contactModelToDo != null) { Assert.AreEqual(contactModelToDo.IsAdmin, controller.IsAdmin); Assert.AreEqual(contactModelToDo.IsAdmin, controller.ViewBag.IsAdmin); } Assert.AreEqual(true, controller.Debug); Assert.AreEqual(true, controller.ViewBag.Debug); }
public void ResetPassword (string userName) { resetPassword = new ResetPasswordService (); resetPassword.SucceededEvent += ResetPaswordComplete; resetPassword.FailedEvent += FailedResetPassword; #if UNITY_EDITOR resetPassword.StartService("*****@*****.**",serverSettings); #elif UNITY_ANDROID resetPassword.StartService(userName,serverSettings); #endif }
public void ResetPassword_CRUD_Test() { foreach (CultureInfo culture in AllowableCulture) { ChangeCulture(culture); using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { ResetPasswordService resetPasswordService = new ResetPasswordService(new Query() { Lang = culture.TwoLetterISOLanguageName }, dbTestDB, ContactID); int count = 0; if (count == 1) { // just so we don't get a warning during compile [The variable 'count' is assigned but its value is never used] } ResetPassword resetPassword = GetFilledRandomResetPassword(""); // ------------------------------- // ------------------------------- // CRUD testing // ------------------------------- // ------------------------------- count = resetPasswordService.GetResetPasswordList().Count(); Assert.AreEqual(count, (from c in dbTestDB.ResetPasswords select c).Count()); resetPasswordService.Add(resetPassword); if (resetPassword.HasErrors) { Assert.AreEqual("", resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); } Assert.AreEqual(true, resetPasswordService.GetResetPasswordList().Where(c => c == resetPassword).Any()); resetPasswordService.Update(resetPassword); if (resetPassword.HasErrors) { Assert.AreEqual("", resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); } Assert.AreEqual(count + 1, resetPasswordService.GetResetPasswordList().Count()); resetPasswordService.Delete(resetPassword); if (resetPassword.HasErrors) { Assert.AreEqual("", resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); } Assert.AreEqual(count, resetPasswordService.GetResetPasswordList().Count()); } } }
public ActionResult RenderForm(string requestToken) { var config = ResetPasswordConfiguration.GetConfig(); var requestService = new PetaPocoResetPasswordRequestService(ApplicationContext.DatabaseContext, config); var service = new ResetPasswordService(Services.MemberService, requestService); if (service.IsRequestTokenValid(requestToken) == false) { return(PartialView("~/Views/Partials/ResetPassword/InvalidRequestToken.cshtml")); } return(PartialView("~/Views/Partials/ResetPassword/ResetPasswordForm.cshtml", new ResetPasswordModel())); }
public IHttpActionResult GetResetPasswordWithID([FromUri] int ResetPasswordID, [FromUri] string lang = "en", [FromUri] string extra = "") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { ResetPasswordService resetPasswordService = new ResetPasswordService(new Query() { Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en) }, db, ContactID); resetPasswordService.Query = resetPasswordService.FillQuery(typeof(ResetPassword), lang, 0, 1, "", "", extra); if (resetPasswordService.Query.Extra == "A") { ResetPasswordExtraA resetPasswordExtraA = new ResetPasswordExtraA(); resetPasswordExtraA = resetPasswordService.GetResetPasswordExtraAWithResetPasswordID(ResetPasswordID); if (resetPasswordExtraA == null) { return(NotFound()); } return(Ok(resetPasswordExtraA)); } else if (resetPasswordService.Query.Extra == "B") { ResetPasswordExtraB resetPasswordExtraB = new ResetPasswordExtraB(); resetPasswordExtraB = resetPasswordService.GetResetPasswordExtraBWithResetPasswordID(ResetPasswordID); if (resetPasswordExtraB == null) { return(NotFound()); } return(Ok(resetPasswordExtraB)); } else { ResetPassword resetPassword = new ResetPassword(); resetPassword = resetPasswordService.GetResetPasswordWithResetPasswordID(ResetPasswordID); if (resetPassword == null) { return(NotFound()); } return(Ok(resetPassword)); } } }
public void ResetPassword_Controller_GetResetPasswordWithID_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { ResetPasswordController resetPasswordController = new ResetPasswordController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(resetPasswordController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, resetPasswordController.DatabaseType); ResetPassword resetPasswordFirst = new ResetPassword(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { ResetPasswordService resetPasswordService = new ResetPasswordService(new Query(), db, ContactID); resetPasswordFirst = (from c in db.ResetPasswords select c).FirstOrDefault(); } // ok with ResetPassword info IHttpActionResult jsonRet = resetPasswordController.GetResetPasswordWithID(resetPasswordFirst.ResetPasswordID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <ResetPassword> Ret = jsonRet as OkNegotiatedContentResult <ResetPassword>; ResetPassword resetPasswordRet = Ret.Content; Assert.AreEqual(resetPasswordFirst.ResetPasswordID, resetPasswordRet.ResetPasswordID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Not Found IHttpActionResult jsonRet2 = resetPasswordController.GetResetPasswordWithID(0); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <ResetPassword> resetPasswordRet2 = jsonRet2 as OkNegotiatedContentResult <ResetPassword>; Assert.IsNull(resetPasswordRet2); NotFoundResult notFoundRequest = jsonRet2 as NotFoundResult; Assert.IsNotNull(notFoundRequest); } } }
public void SetupTest(ContactModel contactModelToDo, CultureInfo culture) { Thread.CurrentThread.CurrentCulture = culture; Thread.CurrentThread.CurrentUICulture = culture; if (contactModelToDo == null) { user = null; } else { contactModel = contactModelToDo; user = new GenericPrincipal(new GenericIdentity(contactModel.LoginEmail, "Forms"), null); } resetPasswordService = new ResetPasswordService((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), user); testDBService = new TestDBService((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), user, TableName, Plurial); randomService = new RandomService((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), user); resetPasswordModelNew = new ResetPasswordModel(); resetPassword = new ResetPassword(); }
public IHttpActionResult Delete([FromBody] ResetPassword resetPassword, [FromUri] string lang = "en") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { ResetPasswordService resetPasswordService = new ResetPasswordService(new Query() { Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en) }, db, ContactID); if (!resetPasswordService.Delete(resetPassword)) { return(BadRequest(String.Join("|||", resetPassword.ValidationResults))); } else { resetPassword.ValidationResults = null; return(Ok(resetPassword)); } } }
public void GetResetPasswordList_Test() { foreach (CultureInfo culture in AllowableCulture) { ChangeCulture(culture); using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { ResetPasswordService resetPasswordService = new ResetPasswordService(new Query() { Lang = culture.TwoLetterISOLanguageName }, dbTestDB, ContactID); ResetPassword resetPassword = (from c in dbTestDB.ResetPasswords select c).FirstOrDefault(); Assert.IsNotNull(resetPassword); List <ResetPassword> resetPasswordDirectQueryList = new List <ResetPassword>(); resetPasswordDirectQueryList = (from c in dbTestDB.ResetPasswords select c).Take(200).ToList(); foreach (string extra in new List <string>() { null, "A", "B", "C", "D", "E" }) { resetPasswordService.Query.Extra = extra; if (string.IsNullOrWhiteSpace(extra)) { List <ResetPassword> resetPasswordList = new List <ResetPassword>(); resetPasswordList = resetPasswordService.GetResetPasswordList().ToList(); CheckResetPasswordFields(resetPasswordList); } else { //Assert.AreEqual(true, false); } } } } }
public void GetResetPasswordList_2Where_Test() { foreach (CultureInfo culture in AllowableCulture) { ChangeCulture(culture); using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { foreach (string extra in new List <string>() { null, "A", "B", "C", "D", "E" }) { ResetPasswordService resetPasswordService = new ResetPasswordService(new Query() { Lang = culture.TwoLetterISOLanguageName }, dbTestDB, ContactID); resetPasswordService.Query = resetPasswordService.FillQuery(typeof(ResetPassword), culture.TwoLetterISOLanguageName, 0, 10000, "", "", "ResetPasswordID,GT,2|ResetPasswordID,LT,5", extra); List <ResetPassword> resetPasswordDirectQueryList = new List <ResetPassword>(); resetPasswordDirectQueryList = (from c in dbTestDB.ResetPasswords select c).Where(c => c.ResetPasswordID > 2 && c.ResetPasswordID < 5).ToList(); if (string.IsNullOrWhiteSpace(extra)) { List <ResetPassword> resetPasswordList = new List <ResetPassword>(); resetPasswordList = resetPasswordService.GetResetPasswordList().ToList(); CheckResetPasswordFields(resetPasswordList); Assert.AreEqual(resetPasswordDirectQueryList[0].ResetPasswordID, resetPasswordList[0].ResetPasswordID); } else { //Assert.AreEqual(true, false); } } } } }
public async Task <string> ForgetPassword(string token, Guid userId, string email) { string modelError = null; using (IResetPasswordService resetPasswordSvc = new ResetPasswordService()) { ResetPassword resetPassword = new ResetPassword(); if (await resetPasswordSvc.GetAll().AnyAsync(m => m.UserId == userId && m.IsSuccess == false)) { resetPassword = await resetPasswordSvc.GetAll().Where(m => m.UserId == userId && m.IsSuccess == false).OrderByDescending(m => m.CreatTime).FirstAsync(); } else { resetPassword = null; } //获取最新的一条reset password,找不到有效的或者间隔大于5分钟才可申请 if (resetPassword == null || DateTime.Now >= resetPassword.CreatTime.AddMinutes(5)) { //在reset password中添加数据 token ResetPassword data = new ResetPassword { Email = email, Token = token, UserId = userId }; await resetPasswordSvc.CreatAsync(data); return(modelError); } else { modelError = "不可频繁申请,请在" + resetPassword.CreatTime.AddMinutes(5) + "后再重试"; return(modelError); } } }
public void SetUp() { _userManager = new Mock <IUserManager>(); _sut = new ResetPasswordService(_userManager.Object); }
public void ResetPassword_Controller_Post_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { ResetPasswordController resetPasswordController = new ResetPasswordController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(resetPasswordController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, resetPasswordController.DatabaseType); ResetPassword resetPasswordLast = new ResetPassword(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { Query query = new Query(); query.Language = LanguageRequest; query.Asc = ""; query.Desc = ""; ResetPasswordService resetPasswordService = new ResetPasswordService(query, db, ContactID); resetPasswordLast = (from c in db.ResetPasswords select c).FirstOrDefault(); } // ok with ResetPassword info IHttpActionResult jsonRet = resetPasswordController.GetResetPasswordWithID(resetPasswordLast.ResetPasswordID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <ResetPassword> Ret = jsonRet as OkNegotiatedContentResult <ResetPassword>; ResetPassword resetPasswordRet = Ret.Content; Assert.AreEqual(resetPasswordLast.ResetPasswordID, resetPasswordRet.ResetPasswordID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Post to return CSSPError because ResetPasswordID exist IHttpActionResult jsonRet2 = resetPasswordController.Post(resetPasswordRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <ResetPassword> resetPasswordRet2 = jsonRet2 as OkNegotiatedContentResult <ResetPassword>; Assert.IsNull(resetPasswordRet2); BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult; Assert.IsNotNull(badRequest2); // Post to return newly added ResetPassword resetPasswordRet.ResetPasswordID = 0; resetPasswordController.Request = new System.Net.Http.HttpRequestMessage(); resetPasswordController.Request.RequestUri = new System.Uri("http://localhost:5000/api/resetPassword"); IHttpActionResult jsonRet3 = resetPasswordController.Post(resetPasswordRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet3); CreatedNegotiatedContentResult <ResetPassword> resetPasswordRet3 = jsonRet3 as CreatedNegotiatedContentResult <ResetPassword>; Assert.IsNotNull(resetPasswordRet3); BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult; Assert.IsNull(badRequest3); IHttpActionResult jsonRet4 = resetPasswordController.Delete(resetPasswordRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet4); OkNegotiatedContentResult <ResetPassword> resetPasswordRet4 = jsonRet4 as OkNegotiatedContentResult <ResetPassword>; Assert.IsNotNull(resetPasswordRet4); BadRequestErrorMessageResult badRequest4 = jsonRet4 as BadRequestErrorMessageResult; Assert.IsNull(badRequest4); } } }
public void ResetPassword_Controller_GetResetPasswordList_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { ResetPasswordController resetPasswordController = new ResetPasswordController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(resetPasswordController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, resetPasswordController.DatabaseType); ResetPassword resetPasswordFirst = new ResetPassword(); int count = -1; Query query = new Query(); using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { ResetPasswordService resetPasswordService = new ResetPasswordService(query, db, ContactID); resetPasswordFirst = (from c in db.ResetPasswords select c).FirstOrDefault(); count = (from c in db.ResetPasswords select c).Count(); count = (query.Take > count ? count : query.Take); } // ok with ResetPassword info IHttpActionResult jsonRet = resetPasswordController.GetResetPasswordList(); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <List <ResetPassword> > ret = jsonRet as OkNegotiatedContentResult <List <ResetPassword> >; Assert.AreEqual(resetPasswordFirst.ResetPasswordID, ret.Content[0].ResetPasswordID); Assert.AreEqual((count > query.Take ? query.Take : count), ret.Content.Count); List <ResetPassword> resetPasswordList = new List <ResetPassword>(); count = -1; query = new Query(); using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { ResetPasswordService resetPasswordService = new ResetPasswordService(query, db, ContactID); resetPasswordList = (from c in db.ResetPasswords select c).OrderBy(c => c.ResetPasswordID).Skip(0).Take(2).ToList(); count = (from c in db.ResetPasswords select c).Count(); } if (count > 0) { query.Skip = 0; query.Take = 5; count = (query.Take > count ? query.Take : count); // ok with ResetPassword info jsonRet = resetPasswordController.GetResetPasswordList(query.Language.ToString(), query.Skip, query.Take); Assert.IsNotNull(jsonRet); ret = jsonRet as OkNegotiatedContentResult <List <ResetPassword> >; Assert.AreEqual(resetPasswordList[0].ResetPasswordID, ret.Content[0].ResetPasswordID); Assert.AreEqual((count > query.Take ? query.Take : count), ret.Content.Count); if (count > 1) { query.Skip = 1; query.Take = 5; count = (query.Take > count ? query.Take : count); // ok with ResetPassword info IHttpActionResult jsonRet2 = resetPasswordController.GetResetPasswordList(query.Language.ToString(), query.Skip, query.Take); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <List <ResetPassword> > ret2 = jsonRet2 as OkNegotiatedContentResult <List <ResetPassword> >; Assert.AreEqual(resetPasswordList[1].ResetPasswordID, ret2.Content[0].ResetPasswordID); Assert.AreEqual((count > query.Take ? query.Take : count), ret2.Content.Count); } } } } }
public async Task <string> ResetPassword(string token, Guid userId, string password) { string modelError = null; using (IResetPasswordService resetPasswordSvc = new ResetPasswordService()) { ResetPassword resetPassword = new ResetPassword(); if (await resetPasswordSvc.GetAll().AnyAsync(m => m.UserId == userId)) { resetPassword = await resetPasswordSvc.GetAll().Where(m => m.UserId == userId && m.Token == token).OrderByDescending(m => m.CreatTime).FirstAsync(); } else { resetPassword = null; } //查找reset password中是否有对应的token而且对应的id是否一致 issuccess是否已经成功 时间是否到期 if (resetPassword != null) { if (resetPassword.IsSuccess == false) { if (DateTime.Now >= resetPassword.ExpireTime) { modelError = "该链接已过期,请重新申请!"; return(modelError); } else { //一致的话reset password issuccess修改为成功 resetPassword.IsSuccess = true; await resetPasswordSvc.EditAsync(resetPassword); //user表用户密码修改 using (IUserService userSvc = new UserService()) { User user = await userSvc.GetAll().FirstAsync(m => m.Id == userId && m.Email == resetPassword.Email); if (user != null) { user.Password = password; await userSvc.EditAsync(user); return(modelError); } else { modelError = "找不到用户信息,修改密码失败!"; return(modelError); } } } } else { modelError = "该链接已被使用,如未成功修改请重新申请忘记密码!"; return(modelError); } } else { modelError = "token信息不正确"; return(modelError); } } }
public IHttpActionResult GetResetPasswordList([FromUri] string lang = "en", [FromUri] int skip = 0, [FromUri] int take = 200, [FromUri] string asc = "", [FromUri] string desc = "", [FromUri] string where = "", [FromUri] string extra = "") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { ResetPasswordService resetPasswordService = new ResetPasswordService(new Query() { Lang = lang }, db, ContactID); if (extra == "A") // QueryString contains [extra=A] { resetPasswordService.Query = resetPasswordService.FillQuery(typeof(ResetPasswordExtraA), lang, skip, take, asc, desc, where, extra); if (resetPasswordService.Query.HasErrors) { return(Ok(new List <ResetPasswordExtraA>() { new ResetPasswordExtraA() { HasErrors = resetPasswordService.Query.HasErrors, ValidationResults = resetPasswordService.Query.ValidationResults, }, }.ToList())); } else { return(Ok(resetPasswordService.GetResetPasswordExtraAList().ToList())); } } else if (extra == "B") // QueryString contains [extra=B] { resetPasswordService.Query = resetPasswordService.FillQuery(typeof(ResetPasswordExtraB), lang, skip, take, asc, desc, where, extra); if (resetPasswordService.Query.HasErrors) { return(Ok(new List <ResetPasswordExtraB>() { new ResetPasswordExtraB() { HasErrors = resetPasswordService.Query.HasErrors, ValidationResults = resetPasswordService.Query.ValidationResults, }, }.ToList())); } else { return(Ok(resetPasswordService.GetResetPasswordExtraBList().ToList())); } } else // QueryString has no parameter [extra] or extra is empty { resetPasswordService.Query = resetPasswordService.FillQuery(typeof(ResetPassword), lang, skip, take, asc, desc, where, extra); if (resetPasswordService.Query.HasErrors) { return(Ok(new List <ResetPassword>() { new ResetPassword() { HasErrors = resetPasswordService.Query.HasErrors, ValidationResults = resetPasswordService.Query.ValidationResults, }, }.ToList())); } else { return(Ok(resetPasswordService.GetResetPasswordList().ToList())); } } } }
public void ResetPassword_Properties_Test() { foreach (CultureInfo culture in AllowableCulture) { ChangeCulture(culture); using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { ResetPasswordService resetPasswordService = new ResetPasswordService(new Query() { Lang = culture.TwoLetterISOLanguageName }, dbTestDB, ContactID); int count = 0; if (count == 1) { // just so we don't get a warning during compile [The variable 'count' is assigned but its value is never used] } count = resetPasswordService.GetResetPasswordList().Count(); ResetPassword resetPassword = GetFilledRandomResetPassword(""); // ------------------------------- // ------------------------------- // Properties testing // ------------------------------- // ------------------------------- // ----------------------------------- // [Key] // Is NOT Nullable // resetPassword.ResetPasswordID (Int32) // ----------------------------------- resetPassword = null; resetPassword = GetFilledRandomResetPassword(""); resetPassword.ResetPasswordID = 0; resetPasswordService.Update(resetPassword); Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "ResetPasswordID"), resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); resetPassword = null; resetPassword = GetFilledRandomResetPassword(""); resetPassword.ResetPasswordID = 10000000; resetPasswordService.Update(resetPassword); Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "ResetPassword", "ResetPasswordID", resetPassword.ResetPasswordID.ToString()), resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [DataType(DataType.EmailAddress)] // [StringLength(256))] // resetPassword.Email (String) // ----------------------------------- resetPassword = null; resetPassword = GetFilledRandomResetPassword("Email"); Assert.AreEqual(false, resetPasswordService.Add(resetPassword)); Assert.AreEqual(1, resetPassword.ValidationResults.Count()); Assert.IsTrue(resetPassword.ValidationResults.Where(c => c.ErrorMessage == string.Format(CSSPServicesRes._IsRequired, "Email")).Any()); Assert.AreEqual(null, resetPassword.Email); Assert.AreEqual(count, resetPasswordService.GetResetPasswordList().Count()); resetPassword = null; resetPassword = GetFilledRandomResetPassword(""); resetPassword.Email = GetRandomString("", 257); Assert.AreEqual(false, resetPasswordService.Add(resetPassword)); Assert.AreEqual(string.Format(CSSPServicesRes._MaxLengthIs_, "Email", "256"), resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); Assert.AreEqual(count, resetPasswordService.GetResetPasswordList().Count()); // ----------------------------------- // Is NOT Nullable // [CSSPAfter(Year = 1980)] // resetPassword.ExpireDate_Local (DateTime) // ----------------------------------- resetPassword = null; resetPassword = GetFilledRandomResetPassword(""); resetPassword.ExpireDate_Local = new DateTime(); resetPasswordService.Add(resetPassword); Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "ExpireDate_Local"), resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); resetPassword = null; resetPassword = GetFilledRandomResetPassword(""); resetPassword.ExpireDate_Local = new DateTime(1979, 1, 1); resetPasswordService.Add(resetPassword); Assert.AreEqual(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "ExpireDate_Local", "1980"), resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [StringLength(8))] // resetPassword.Code (String) // ----------------------------------- resetPassword = null; resetPassword = GetFilledRandomResetPassword("Code"); Assert.AreEqual(false, resetPasswordService.Add(resetPassword)); Assert.AreEqual(1, resetPassword.ValidationResults.Count()); Assert.IsTrue(resetPassword.ValidationResults.Where(c => c.ErrorMessage == string.Format(CSSPServicesRes._IsRequired, "Code")).Any()); Assert.AreEqual(null, resetPassword.Code); Assert.AreEqual(count, resetPasswordService.GetResetPasswordList().Count()); resetPassword = null; resetPassword = GetFilledRandomResetPassword(""); resetPassword.Code = GetRandomString("", 9); Assert.AreEqual(false, resetPasswordService.Add(resetPassword)); Assert.AreEqual(string.Format(CSSPServicesRes._MaxLengthIs_, "Code", "8"), resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); Assert.AreEqual(count, resetPasswordService.GetResetPasswordList().Count()); // ----------------------------------- // Is NOT Nullable // [CSSPAfter(Year = 1980)] // resetPassword.LastUpdateDate_UTC (DateTime) // ----------------------------------- resetPassword = null; resetPassword = GetFilledRandomResetPassword(""); resetPassword.LastUpdateDate_UTC = new DateTime(); resetPasswordService.Add(resetPassword); Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); resetPassword = null; resetPassword = GetFilledRandomResetPassword(""); resetPassword.LastUpdateDate_UTC = new DateTime(1979, 1, 1); resetPasswordService.Add(resetPassword); Assert.AreEqual(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LastUpdateDate_UTC", "1980"), resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [CSSPExist(ExistTypeName = "TVItem", ExistPlurial = "s", ExistFieldID = "TVItemID", AllowableTVtypeList = Contact)] // resetPassword.LastUpdateContactTVItemID (Int32) // ----------------------------------- resetPassword = null; resetPassword = GetFilledRandomResetPassword(""); resetPassword.LastUpdateContactTVItemID = 0; resetPasswordService.Add(resetPassword); Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", resetPassword.LastUpdateContactTVItemID.ToString()), resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); resetPassword = null; resetPassword = GetFilledRandomResetPassword(""); resetPassword.LastUpdateContactTVItemID = 1; resetPasswordService.Add(resetPassword); Assert.AreEqual(string.Format(CSSPServicesRes._IsNotOfType_, "LastUpdateContactTVItemID", "Contact"), resetPassword.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [NotMapped] // resetPassword.HasErrors (Boolean) // ----------------------------------- // No testing requied // ----------------------------------- // Is NOT Nullable // [NotMapped] // resetPassword.ValidationResults (IEnumerable`1) // ----------------------------------- // No testing requied } } }
public void TestInitialize() { _mock = AutoMock.GetLoose(); _resetPasswordService = _mock.Create <ResetPasswordService>(); }