Port ConfirmEmail, IQueryableUserStore tests
Also add missing IQueryableUserStore to InMemory
This commit is contained in:
parent
c914772696
commit
113bab1a1d
|
|
@ -7,7 +7,6 @@ using System.Threading.Tasks;
|
|||
namespace Microsoft.AspNet.Identity.InMemory
|
||||
{
|
||||
public class InMemoryUserStore<TUser> :
|
||||
IUserStore<TUser, string>,
|
||||
IUserLoginStore<TUser, string>,
|
||||
IUserRoleStore<TUser, string>,
|
||||
IUserClaimStore<TUser, string>,
|
||||
|
|
@ -15,8 +14,8 @@ namespace Microsoft.AspNet.Identity.InMemory
|
|||
IUserSecurityStampStore<TUser, string>,
|
||||
IUserEmailStore<TUser, string>,
|
||||
IUserLockoutStore<TUser, string>,
|
||||
IUserPhoneNumberStore<TUser, string>
|
||||
where TUser : InMemoryUser
|
||||
IUserPhoneNumberStore<TUser, string>,
|
||||
IQueryableUserStore<TUser, string> where TUser : InMemoryUser
|
||||
{
|
||||
private readonly Dictionary<UserLoginInfo, TUser> _logins =
|
||||
new Dictionary<UserLoginInfo, TUser>(new LoginComparer());
|
||||
|
|
|
|||
|
|
@ -18,18 +18,6 @@ namespace Microsoft.AspNet.Identity.InMemory.Test
|
|||
Assert.Null(await manager.FindById(user.Id));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CanFindByEmail()
|
||||
{
|
||||
var manager = CreateManager();
|
||||
const string userName = "EmailTest";
|
||||
const string email = "email@test.com";
|
||||
var user = new InMemoryUser(userName) { Email = email };
|
||||
IdentityResultAssert.IsSuccess(await manager.Create(user));
|
||||
var fetch = await manager.FindByEmail(email);
|
||||
Assert.Equal(user, fetch);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CanCreateUserNoPassword()
|
||||
{
|
||||
|
|
@ -202,6 +190,80 @@ namespace Microsoft.AspNet.Identity.InMemory.Test
|
|||
IdentityResultAssert.IsFailure(result, "A user with that external login already exists.");
|
||||
}
|
||||
|
||||
// Email tests
|
||||
[Fact]
|
||||
public async Task CanFindByEmail()
|
||||
{
|
||||
var manager = CreateManager();
|
||||
const string userName = "EmailTest";
|
||||
const string email = "email@test.com";
|
||||
var user = new InMemoryUser(userName) { Email = email };
|
||||
IdentityResultAssert.IsSuccess(await manager.Create(user));
|
||||
var fetch = await manager.FindByEmail(email);
|
||||
Assert.Equal(user, fetch);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CanFindUsersViaUserQuerable()
|
||||
{
|
||||
var mgr = CreateManager();
|
||||
var users = new[]
|
||||
{
|
||||
new InMemoryUser("user1"),
|
||||
new InMemoryUser("user2"),
|
||||
new InMemoryUser("user3")
|
||||
};
|
||||
foreach (InMemoryUser u in users)
|
||||
{
|
||||
IdentityResultAssert.IsSuccess(await mgr.Create(u));
|
||||
}
|
||||
var usersQ = mgr.Users;
|
||||
Assert.Equal(3, usersQ.Count());
|
||||
Assert.NotNull(usersQ.FirstOrDefault(u => u.UserName == "user1"));
|
||||
Assert.NotNull(usersQ.FirstOrDefault(u => u.UserName == "user2"));
|
||||
Assert.NotNull(usersQ.FirstOrDefault(u => u.UserName == "user3"));
|
||||
Assert.Null(usersQ.FirstOrDefault(u => u.UserName == "bogus"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ConfirmEmailFalseByDefaultTest()
|
||||
{
|
||||
var manager = CreateManager();
|
||||
var user = new InMemoryUser("test");
|
||||
IdentityResultAssert.IsSuccess(await manager.Create(user));
|
||||
Assert.False(await manager.IsEmailConfirmed(user.Id));
|
||||
}
|
||||
|
||||
// TODO: No token provider implementations yet
|
||||
//[Fact]
|
||||
//public async Task ConfirmEmailTest()
|
||||
//{
|
||||
// var manager = CreateManager();
|
||||
// var user = new InMemoryUser("test");
|
||||
// Assert.False(user.EmailConfirmed);
|
||||
// IdentityResultAssert.IsSuccess(await manager.Create(user));
|
||||
// var token = await manager.GenerateEmailConfirmationToken(user.Id);
|
||||
// Assert.NotNull(token);
|
||||
// IdentityResultAssert.IsSuccess(await manager.ConfirmEmail(user.Id, token));
|
||||
// Assert.True(await manager.IsEmailConfirmed(user.Id));
|
||||
// IdentityResultAssert.IsSuccess(await manager.SetEmail(user.Id, null));
|
||||
// Assert.False(await manager.IsEmailConfirmed(user.Id));
|
||||
//}
|
||||
|
||||
//[Fact]
|
||||
//public async Task ConfirmTokenFailsAfterPasswordChangeTest()
|
||||
//{
|
||||
// var manager = CreateManager();
|
||||
// var user = new InMemoryUser("test");
|
||||
// Assert.False(user.EmailConfirmed);
|
||||
// IdentityResultAssert.IsSuccess(await manager.Create(user, "password"));
|
||||
// var token = await manager.GenerateEmailConfirmationToken(user.Id);
|
||||
// Assert.NotNull(token);
|
||||
// IdentityResultAssert.IsSuccess(await manager.ChangePassword(user.Id, "password", "newpassword"));
|
||||
// IdentityResultAssert.IsFailure(await manager.ConfirmEmail(user.Id, token), "Invalid token.");
|
||||
// Assert.False(await manager.IsEmailConfirmed(user.Id));
|
||||
//}
|
||||
|
||||
// Lockout tests
|
||||
|
||||
[Fact]
|
||||
|
|
|
|||
Loading…
Reference in New Issue