EditProfile() 개인적인 메소드

private EditProfile ( ) : System.Web.Mvc.ActionResult
리턴 System.Web.Mvc.ActionResult
    public void EditProfilePostShouldUpdateProfile(FakeSiteContext siteContext, string profileItemId, [Substitute] EditProfile editProfile, [Frozen]IUserProfileService userProfileService)
    {
      var user = Substitute.For<User>("extranet/John", true);
      user.Profile.Returns(Substitute.For<UserProfile>());
      user.Profile.ProfileItemId = profileItemId;
      userProfileService.GetUserDefaultProfileId().Returns(profileItemId);
      userProfileService.ValidateProfile(Arg.Any<EditProfile>(), Arg.Any<ModelStateDictionary>()).Returns(true);

      using (new SiteContextSwitcher(siteContext))
      using (new UserSwitcher(user))
      {
        var accountsController = new AccountsController(null, null, null, userProfileService, null);
        accountsController.ControllerContext = Substitute.For<ControllerContext>();
        accountsController.ControllerContext.HttpContext.Returns(Substitute.For<HttpContextBase>());
        accountsController.ControllerContext.HttpContext.Session.Returns(Substitute.For<HttpSessionStateBase>());
        accountsController.ControllerContext.HttpContext.Request.Returns(Substitute.For<HttpRequestBase>());
        accountsController.ControllerContext.HttpContext.Request.RawUrl.Returns("/");

        var result = accountsController.EditProfile(editProfile);
        userProfileService.Received(1).SetProfile(user.Profile, editProfile);
        accountsController.Session["EditProfileMessage"].Should().BeOfType<InfoMessage>().Which.Type.Should().Be(InfoMessage.MessageType.Info);
        result.Should().BeOfType<RedirectResult>();
      }
    }
    public void EditProfilePostShouldReturnModelErrors(FakeSiteContext siteContext, ModelStateDictionary modelState, string profileItemId, IEnumerable<string> interests, [Substitute] EditProfile editProfile, IUserProfileService userProfileService)
    {
      var user = Substitute.For<User>("extranet/John", true);
      user.Profile.Returns(Substitute.For<UserProfile>());
      user.Profile.ProfileItemId = profileItemId;
      userProfileService.GetUserDefaultProfileId().Returns(profileItemId);
      userProfileService.GetInterests().Returns(interests);
      userProfileService.ValidateProfile(Arg.Any<EditProfile>(), Arg.Do<ModelStateDictionary>(x => x.AddModelError("key", "error"))).Returns(false);

      using (new SiteContextSwitcher(siteContext))
      using (new UserSwitcher(user))
      {
        var accounController = new AccountsController(null, null, null, userProfileService, null);
        var result = accounController.EditProfile(editProfile);
        result.Should().BeOfType<ViewResult>().Which.ViewData.ModelState.Should().ContainKey("key").WhichValue.Errors.Should().Contain(e => e.ErrorMessage == "error");
      }
    }
    public void EditProfileShouldReturnEmptyViewForEditMode(Database db, IUserProfileService userProfileService)
    {
      userProfileService.GetEmptyProfile().Returns(new EditProfile());

      var fakeSite = new FakeSiteContext(new StringDictionary
      {
        {"rootPath", "/sitecore/content"}
      }) as SiteContext;
      fakeSite.Database = db;
      typeof(SiteContext).GetField("displayMode", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(fakeSite, DisplayMode.Edit);

      Language.Current = Language.Invariant;

      using (new SiteContextSwitcher(fakeSite))
      {
        var accounController = new AccountsController(null, null, null, userProfileService, null);
        var result = accounController.EditProfile();
        result.Should().BeOfType<ViewResult>().Which.Model.ShouldBeEquivalentTo(new EditProfile());
      }
    }
    public void EditProfilePostShouldReturnInfoMessageIfProfileDoesntMatch(string siteProfileId, string profileItemId, [Substitute] EditProfile editProfile, IUserProfileService userProfileService)
    {
      var user = Substitute.For<User>("extranet/John", true);
      user.Profile.Returns(Substitute.For<UserProfile>());
      user.Profile.ProfileItemId = profileItemId;
      userProfileService.GetUserDefaultProfileId().Returns(siteProfileId);

      var fakeSite = new FakeSiteContext(new StringDictionary
      {
        {"displayMode", "normal"}
      }) as SiteContext;

      using (new SiteContextSwitcher(fakeSite))
      using (new UserSwitcher(user))
      {
        var accounController = new AccountsController(null, null, null, userProfileService, null);
        var result = accounController.EditProfile(editProfile);
        result.Should().BeOfType<ViewResult>().Which.Model.Should().BeOfType<InfoMessage>().Which.Type.Should().Be(InfoMessage.MessageType.Error);
      }
    }
예제 #5
0
        public void EditProfile_DefaultState_ShouldReturnProfileModel(string profileItemId, [Substitute] EditProfile editProfile, IUserProfileService userProfileService)
        {
            var user = Substitute.For<User>("extranet/John", true);
            user.Profile.Returns(Substitute.For<UserProfile>());
            user.Profile.ProfileItemId = profileItemId;
            userProfileService.GetUserDefaultProfileId().Returns(profileItemId);
            userProfileService.GetProfile(Arg.Any<UserProfile>()).Returns(editProfile);
            userProfileService.ValidateUser(Arg.Any<User>()).ReturnsForAnyArgs(true);

            var fakeSite = new FakeSiteContext(new StringDictionary
                                               {
                                                   {"displayMode", "normal"},
                                                   {"domain", "extranet"}
                                               }) as SiteContext;

            using (new SiteContextSwitcher(fakeSite))
                using (new UserSwitcher(user))
                {
                    var accounController = new AccountsController(null, null, null, userProfileService, null);
                    var result = accounController.EditProfile();
                    result.Should().BeOfType<ViewResult>().Which.Model.Should().Be(editProfile);
                }
        }