Skip to content

Commit

Permalink
Added another overload for ChangePassword that takes old password.
Browse files Browse the repository at this point in the history
  • Loading branch information
troygoode committed Sep 1, 2010
1 parent 74926d2 commit a4e9441
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
25 changes: 25 additions & 0 deletions MvcMembership.Tests/PasswordServiceFacts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -80,5 +80,30 @@ public void ChangePassword_throws_MembershipPasswordException_if_password_wasnt_
//act
Assert.Throws<MembershipPasswordException>(() => _membershipWrapper.ChangePassword(_user.Object, "New Password"));
}

[Fact]
public void ChangePassword_with_old_password_supplied_changes_password()
{
//arrange
const string oldPassword = "Foo Bar";
const string newPassword = "Lorem ipsum dolor.";
_user.Setup(x => x.ChangePassword(oldPassword, newPassword)).Returns(true);

//act
_membershipWrapper.ChangePassword(_user.Object, oldPassword, newPassword);

//assert
_user.Verify(x => x.ChangePassword(oldPassword, newPassword));
}

[Fact]
public void ChangePassword_with_old_password_supplied_throws_MembershipPasswordException_if_password_wasnt_changed()
{
//arrange
_user.Setup(x => x.ChangePassword(It.IsAny<string>(), It.IsAny<string>())).Returns(false);

//act
Assert.Throws<MembershipPasswordException>(() => _membershipWrapper.ChangePassword(_user.Object, "Old Password", "New Password"));
}
}
}
9 changes: 8 additions & 1 deletion MvcMembership/AspNetMembershipProviderWrapper.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Web.Security;
using PagedList;

Expand Down Expand Up @@ -37,6 +38,12 @@ public void ChangePassword(MembershipUser user, string newPassword)
throw new MembershipPasswordException("Could not change password.");
}

public void ChangePassword(MembershipUser user, string oldPassword, string newPassword)
{
if (!user.ChangePassword(oldPassword, newPassword))
throw new MembershipPasswordException("Could not change password.");
}

#endregion

#region IUserService Members
Expand Down
1 change: 1 addition & 0 deletions MvcMembership/IPasswordService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ public interface IPasswordService
string ResetPassword(MembershipUser user);
string ResetPassword(MembershipUser user, string passwordAnswer);
void ChangePassword(MembershipUser user, string newPassword);
void ChangePassword(MembershipUser user, string oldPassword, string newPassword);
}
}

0 comments on commit a4e9441

Please sign in to comment.