public virtual ActionResult EditProfile(EditProfile profile)
    {
      if (this.userProfileService.GetUserDefaultProfileId() != Context.User.Profile.ProfileItemId)
      {
        return this.View("InfoMessage", new InfoMessage(Errors.ProfileMismatch, InfoMessage.MessageType.Error));
      }

      if (!this.userProfileService.ValidateProfile(profile, this.ModelState))
      {
        profile.InterestTypes = this.userProfileService.GetInterests();
        return this.View(profile);
      }

      this.userProfileService.SetProfile(Context.User.Profile, profile);
      if (this.contactProfileService != null)
      {
        this.contactProfileService.SetProfile(profile);
      }

      Session["EditProfileMessage"] = new InfoMessage(Captions.EditProfileSuccess);
      return this.Redirect(Request.RawUrl);
    }
 public void ForgotPasswordShouldReturnSuccessView([Frozen] IAccountRepository repo, INotificationService ns, PasswordResetInfo model, IAccountsSettingsService accountSetting, InfoMessage info)
 {
   var fakeSite = new FakeSiteContext(new StringDictionary
   {
     {
       "displayMode", "normal"
     }
   }) as SiteContext;
   using (new SiteContextSwitcher(fakeSite))
   {
     var controller = new AccountsController(repo, ns, accountSetting, null, null);
     repo.RestorePassword(Arg.Any<string>()).Returns("new password");
     repo.Exists(Arg.Any<string>()).Returns(true);
     var result = controller.ForgotPassword(model);
     result.Should().BeOfType<ViewResult>().Which.ViewName.Should().Be("InfoMessage");
   }
 }