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
|
namespace Microsoft.AspNet.Identity.InMemory
|
||||||
{
|
{
|
||||||
public class InMemoryUserStore<TUser> :
|
public class InMemoryUserStore<TUser> :
|
||||||
IUserStore<TUser, string>,
|
|
||||||
IUserLoginStore<TUser, string>,
|
IUserLoginStore<TUser, string>,
|
||||||
IUserRoleStore<TUser, string>,
|
IUserRoleStore<TUser, string>,
|
||||||
IUserClaimStore<TUser, string>,
|
IUserClaimStore<TUser, string>,
|
||||||
|
|
@ -15,8 +14,8 @@ namespace Microsoft.AspNet.Identity.InMemory
|
||||||
IUserSecurityStampStore<TUser, string>,
|
IUserSecurityStampStore<TUser, string>,
|
||||||
IUserEmailStore<TUser, string>,
|
IUserEmailStore<TUser, string>,
|
||||||
IUserLockoutStore<TUser, string>,
|
IUserLockoutStore<TUser, string>,
|
||||||
IUserPhoneNumberStore<TUser, string>
|
IUserPhoneNumberStore<TUser, string>,
|
||||||
where TUser : InMemoryUser
|
IQueryableUserStore<TUser, string> where TUser : InMemoryUser
|
||||||
{
|
{
|
||||||
private readonly Dictionary<UserLoginInfo, TUser> _logins =
|
private readonly Dictionary<UserLoginInfo, TUser> _logins =
|
||||||
new Dictionary<UserLoginInfo, TUser>(new LoginComparer());
|
new Dictionary<UserLoginInfo, TUser>(new LoginComparer());
|
||||||
|
|
|
||||||
|
|
@ -18,18 +18,6 @@ namespace Microsoft.AspNet.Identity.InMemory.Test
|
||||||
Assert.Null(await manager.FindById(user.Id));
|
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]
|
[Fact]
|
||||||
public async Task CanCreateUserNoPassword()
|
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.");
|
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
|
// Lockout tests
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue