mirror of https://github.com/abpframework/abp.git
committed by
GitHub
8 changed files with 1277 additions and 8 deletions
@ -0,0 +1,56 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Identity; |
|||
using Shouldly; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.Identity |
|||
{ |
|||
public class IdentityUserLookupAppService_Tests : AbpIdentityApplicationTestBase |
|||
{ |
|||
private readonly IIdentityUserLookupAppService _identityUserLookupAppService; |
|||
private readonly IIdentityUserRepository _identityUserRepository; |
|||
private readonly ILookupNormalizer _lookupNormalizer; |
|||
|
|||
public IdentityUserLookupAppService_Tests() |
|||
{ |
|||
_identityUserLookupAppService = GetRequiredService<IIdentityUserLookupAppService>(); |
|||
_identityUserRepository = GetRequiredService<IIdentityUserRepository>(); |
|||
_lookupNormalizer = GetRequiredService<ILookupNormalizer>(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task FindByIdAsync() |
|||
{ |
|||
var user = await _identityUserRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserLookupAppService.FindByIdAsync(user.Id)).UserName.ShouldBe(user.UserName); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task FindById_NotExist_Should_Return_Null() |
|||
{ |
|||
var user = await _identityUserLookupAppService.FindByIdAsync(Guid.NewGuid()); |
|||
user.ShouldBeNull(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task FindByUserNameAsync() |
|||
{ |
|||
var user = await _identityUserRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserLookupAppService.FindByUserNameAsync(user.UserName)).UserName.ShouldBe(user.UserName); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task FindByUserName_NotExist_Should_Return_Null() |
|||
{ |
|||
var user = await _identityUserLookupAppService.FindByUserNameAsync(Guid.NewGuid().ToString()); |
|||
user.ShouldBeNull(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,73 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Shouldly; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.Identity |
|||
{ |
|||
public class IdenityClaimTypeManager_Tests : AbpIdentityDomainTestBase |
|||
{ |
|||
private readonly IIdentityClaimTypeRepository _identityClaimTypeRepository; |
|||
private readonly IdenityClaimTypeManager _claimTypeManager; |
|||
private readonly IdentityTestData _testData; |
|||
|
|||
public IdenityClaimTypeManager_Tests() |
|||
{ |
|||
_identityClaimTypeRepository = GetRequiredService<IIdentityClaimTypeRepository>(); |
|||
_claimTypeManager = GetRequiredService<IdenityClaimTypeManager>(); |
|||
_testData = GetRequiredService<IdentityTestData>(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task CreateAsync() |
|||
{ |
|||
var claimType = await _claimTypeManager.CreateAsync(new IdentityClaimType(Guid.NewGuid(), "Phone", false, |
|||
false, null, |
|||
null, null, IdentityClaimValueType.String)); |
|||
|
|||
claimType.ShouldNotBeNull(); |
|||
claimType.Name.ShouldBe("Phone"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task Create_Name_Exist_Should_Exception() |
|||
{ |
|||
await Assert.ThrowsAnyAsync<AbpException>(async () => await _claimTypeManager.CreateAsync( |
|||
new IdentityClaimType( |
|||
Guid.NewGuid(), "Age"))); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task UpdateAsync() |
|||
{ |
|||
var ageClaim = _identityClaimTypeRepository.Find(_testData.AgeClaimId); |
|||
ageClaim.ShouldNotBeNull(); |
|||
ageClaim.Description = "this is age"; |
|||
|
|||
var updatedAgeClaimType = await _claimTypeManager.UpdateAsync(ageClaim); |
|||
updatedAgeClaimType.ShouldNotBeNull(); |
|||
updatedAgeClaimType.Description.ShouldBe("this is age"); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task Update_Name_Exist_Should_Exception() |
|||
{ |
|||
await Assert.ThrowsAnyAsync<AbpException>(async () => await _claimTypeManager.UpdateAsync( |
|||
new IdentityClaimType( |
|||
Guid.NewGuid(), "Age"))); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task Static_IdentityClaimType_Cant_Not_Update() |
|||
{ |
|||
var phoneClaim = new IdentityClaimType(Guid.NewGuid(), "Phone", true, true); |
|||
_identityClaimTypeRepository.Insert(phoneClaim); |
|||
|
|||
await Assert.ThrowsAnyAsync<AbpException>(async () => await _claimTypeManager.UpdateAsync(phoneClaim)); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,60 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Identity; |
|||
using Shouldly; |
|||
using Volo.Abp.Uow; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.Identity |
|||
{ |
|||
public class IdentityRoleManager_Tests : AbpIdentityDomainTestBase |
|||
{ |
|||
private readonly IdentityRoleManager _identityRoleManager; |
|||
private readonly IIdentityRoleRepository _identityRoleRepository; |
|||
private readonly ILookupNormalizer _lookupNormalizer; |
|||
private readonly IdentityTestData _testData; |
|||
|
|||
public IdentityRoleManager_Tests() |
|||
{ |
|||
_identityRoleManager = GetRequiredService<IdentityRoleManager>(); |
|||
_identityRoleRepository = GetRequiredService<IIdentityRoleRepository>(); |
|||
_lookupNormalizer = GetRequiredService<ILookupNormalizer>(); |
|||
_testData = GetRequiredService<IdentityTestData>(); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task GetByIdAsync() |
|||
{ |
|||
var role = await _identityRoleManager.FindByIdAsync(_testData.RoleModeratorId.ToString()); |
|||
|
|||
role.ShouldNotBeNull(); |
|||
role.Name.ShouldBe("moderator"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task SetRoleNameAsync() |
|||
{ |
|||
var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
role.ShouldNotBeNull(); |
|||
|
|||
(await _identityRoleManager.SetRoleNameAsync(role, "teacher")).Succeeded.ShouldBeTrue(); |
|||
|
|||
role.Name.ShouldBe("teacher"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task DeleteAsync() |
|||
{ |
|||
var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
role.ShouldNotBeNull(); |
|||
|
|||
await _identityRoleManager.DeleteAsync(role); |
|||
|
|||
(await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator"))).ShouldBeNull(); |
|||
} |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,186 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Security.Claims; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Identity; |
|||
using Shouldly; |
|||
using Volo.Abp.Uow; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.Identity |
|||
{ |
|||
public class IdentityRoleStore_Tests : AbpIdentityDomainTestBase |
|||
{ |
|||
private readonly IdentityRoleStore _identityRoleStore; |
|||
private readonly ILookupNormalizer _lookupNormalizer; |
|||
private readonly IIdentityRoleRepository _identityRoleRepository; |
|||
private readonly IdentityTestData _testData; |
|||
private readonly IUnitOfWorkManager _unitOfWorkManager; |
|||
|
|||
public IdentityRoleStore_Tests() |
|||
{ |
|||
_identityRoleStore = GetRequiredService<IdentityRoleStore>(); |
|||
_lookupNormalizer = GetRequiredService<ILookupNormalizer>(); |
|||
_identityRoleRepository = GetRequiredService<IIdentityRoleRepository>(); |
|||
_testData = GetRequiredService<IdentityTestData>(); |
|||
_unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task CreateAsync() |
|||
{ |
|||
var roleId = Guid.NewGuid(); |
|||
var role = new IdentityRole(roleId, "teacher"); |
|||
(await _identityRoleStore.CreateAsync(role)).Succeeded.ShouldBeTrue(); |
|||
|
|||
var teacher = await _identityRoleStore.FindByIdAsync(roleId.ToString()); |
|||
|
|||
teacher.ShouldNotBeNull(); |
|||
teacher.Name.ShouldBe("teacher"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task UpdateAsync() |
|||
{ |
|||
var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
role.ShouldNotBeNull(); |
|||
|
|||
role.IsDefault = true; |
|||
await _identityRoleStore.UpdateAsync(role); |
|||
|
|||
role.IsDefault.ShouldBeTrue(); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task DeleteAsync() |
|||
{ |
|||
var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
role.ShouldNotBeNull(); |
|||
|
|||
await _identityRoleStore.DeleteAsync(role); |
|||
|
|||
(await _identityRoleStore.FindByIdAsync(_testData.RoleModeratorId.ToString())).ShouldBeNull(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetRoleIdAsync() |
|||
{ |
|||
var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
role.ShouldNotBeNull(); |
|||
|
|||
(await _identityRoleStore.GetRoleIdAsync(role)).ShouldBe(_testData.RoleModeratorId.ToString()); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetRoleNameAsync() |
|||
{ |
|||
var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
role.ShouldNotBeNull(); |
|||
|
|||
(await _identityRoleStore.GetRoleNameAsync(role)).ShouldBe(role.Name); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task SetRoleNameAsync() |
|||
{ |
|||
var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
role.ShouldNotBeNull(); |
|||
|
|||
await _identityRoleStore.SetRoleNameAsync(role, "teacher"); |
|||
|
|||
role.Name.ShouldBe("teacher"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task FindByIdAsync() |
|||
{ |
|||
var role = await _identityRoleStore.FindByIdAsync(_testData.RoleModeratorId.ToString()); |
|||
|
|||
role.ShouldNotBeNull(); |
|||
role.Name.ShouldBe("moderator"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task FindByNameAsync() |
|||
{ |
|||
var role = await _identityRoleStore.FindByNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
|
|||
role.ShouldNotBeNull(); |
|||
role.Name.ShouldBe("moderator"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetNormalizedRoleNameAsync() |
|||
{ |
|||
var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
role.ShouldNotBeNull(); |
|||
|
|||
(await _identityRoleStore.GetNormalizedRoleNameAsync(role)).ShouldBe(role.NormalizedName); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task SetNormalizedRoleNameAsync() |
|||
{ |
|||
var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
role.ShouldNotBeNull(); |
|||
|
|||
await _identityRoleStore.SetNormalizedRoleNameAsync(role, _lookupNormalizer.Normalize("teacher")); |
|||
|
|||
role.NormalizedName.ShouldBe(_lookupNormalizer.Normalize("teacher")); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetClaimsAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
role.ShouldNotBeNull(); |
|||
|
|||
var claims = await _identityRoleStore.GetClaimsAsync(role); |
|||
|
|||
claims.ShouldNotBeEmpty(); |
|||
claims.ShouldContain(x => x.Type == "test-claim" && x.Value == "test-value"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task AddClaimAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
role.ShouldNotBeNull(); |
|||
|
|||
await _identityRoleStore.AddClaimAsync(role, new Claim("my-claim", "my-value")); |
|||
|
|||
role.Claims.ShouldContain(x => x.ClaimType == "my-claim" && x.ClaimValue == "my-value"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task RemoveClaimAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); |
|||
role.ShouldNotBeNull(); |
|||
|
|||
await _identityRoleStore.RemoveClaimAsync(role, new Claim("test-claim", "test-value")); |
|||
|
|||
role.Claims.ShouldNotContain(x => x.ClaimType == "test-claim" && x.ClaimValue == "test-value"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,87 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Identity; |
|||
using Shouldly; |
|||
using Volo.Abp.Uow; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.Identity |
|||
{ |
|||
public class IdentityUserManager_Tests : AbpIdentityDomainTestBase |
|||
{ |
|||
private readonly IdentityUserManager _identityUserManager; |
|||
private readonly IIdentityUserRepository _identityUserRepository; |
|||
private readonly IIdentityRoleRepository _identityRoleRepository; |
|||
private readonly ILookupNormalizer _lookupNormalizer; |
|||
private readonly IUnitOfWorkManager _unitOfWorkManager; |
|||
private readonly IdentityTestData _testData; |
|||
|
|||
public IdentityUserManager_Tests() |
|||
{ |
|||
_identityUserManager = GetRequiredService<IdentityUserManager>(); |
|||
_identityUserRepository = GetRequiredService<IIdentityUserRepository>(); |
|||
_identityRoleRepository = GetRequiredService<IIdentityRoleRepository>(); |
|||
_lookupNormalizer = GetRequiredService<ILookupNormalizer>(); |
|||
_testData = GetRequiredService<IdentityTestData>(); |
|||
_unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetByIdAsync() |
|||
{ |
|||
var user = await _identityUserManager.GetByIdAsync(_testData.UserJohnId); |
|||
|
|||
user.ShouldNotBeNull(); |
|||
user.UserName.ShouldBe("john.nash"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task SetRolesAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _identityUserRepository.FindByNormalizedUserNameAsync( |
|||
_lookupNormalizer.Normalize("david")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
var identityResult = await _identityUserManager.SetRolesAsync(user, new List<string>() |
|||
{ |
|||
"moderator", |
|||
}); |
|||
|
|||
identityResult.Succeeded.ShouldBeTrue(); |
|||
user.Roles.ShouldContain(x => x.RoleId == _testData.RoleModeratorId); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task SetRoles_Should_Remove_Other_Roles() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var roleSupporter = |
|||
await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("supporter")); |
|||
roleSupporter.ShouldNotBeNull(); |
|||
|
|||
var user = await _identityUserRepository.FindByNormalizedUserNameAsync( |
|||
_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
var identityResult = await _identityUserManager.SetRolesAsync(user, new List<string>() |
|||
{ |
|||
"admin", |
|||
}); |
|||
|
|||
identityResult.Succeeded.ShouldBeTrue(); |
|||
user.Roles.ShouldNotContain(x => x.RoleId == _testData.RoleModeratorId); |
|||
user.Roles.ShouldNotContain(x => x.RoleId == roleSupporter.Id); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,777 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Security.Claims; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Identity; |
|||
using Shouldly; |
|||
using Volo.Abp.Guids; |
|||
using Volo.Abp.Uow; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.Identity |
|||
{ |
|||
public class IdentityUserStore_Tests : AbpIdentityDomainTestBase |
|||
{ |
|||
private readonly IdentityUserStore _identityUserStore; |
|||
private readonly ILookupNormalizer _lookupNormalizer; |
|||
private readonly IIdentityUserRepository _userRepository; |
|||
private readonly IdentityTestData _testData; |
|||
private readonly IUnitOfWorkManager _unitOfWorkManager; |
|||
|
|||
public IdentityUserStore_Tests() |
|||
{ |
|||
_identityUserStore = GetRequiredService<IdentityUserStore>(); |
|||
_lookupNormalizer = GetRequiredService<ILookupNormalizer>(); |
|||
_userRepository = GetRequiredService<IIdentityUserRepository>(); |
|||
_testData = GetRequiredService<IdentityTestData>(); |
|||
_unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetUserIdAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetUserIdAsync(user)).ShouldBe(user.Id.ToString()); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task GetUserNameAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetUserNameAsync(user)).ShouldBe(user.UserName); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task SetUserNameAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.SetUserNameAsync(user, "bob.lee"); |
|||
user.UserName.ShouldBe("bob.lee"); |
|||
//user.NormalizedUserName.ShouldBe(_lookupNormalizer.Normalize("bob.lee"));
|
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task GetNormalizedUserNameAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetNormalizedUserNameAsync(user)).ShouldBe(user.NormalizedUserName); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task SetNormalizedUserNameAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.SetNormalizedUserNameAsync(user, _lookupNormalizer.Normalize("bob.lee")); |
|||
|
|||
user.NormalizedUserName.ShouldBe(_lookupNormalizer.Normalize("bob.lee")); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task CreateAsync() |
|||
{ |
|||
var userId = Guid.NewGuid(); |
|||
var user = new IdentityUser(userId, "bob.lee", "bob.lee@abp.io"); |
|||
|
|||
await _identityUserStore.CreateAsync(user); |
|||
|
|||
var bobLee = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("bob.lee")); |
|||
bobLee.ShouldNotBeNull(); |
|||
bobLee.UserName.ShouldBe("bob.lee"); |
|||
bobLee.Email.ShouldBe("bob.lee@abp.io"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task UpdateAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
user.Name = "lee"; |
|||
(await _identityUserStore.UpdateAsync(user)).Succeeded.ShouldBeTrue(); |
|||
|
|||
(await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash"))).Name |
|||
.ShouldBe("lee"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task Update_Concurrency() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.UpdateAsync(user)).Succeeded.ShouldBeTrue(); |
|||
|
|||
user.ConcurrencyStamp = Guid.NewGuid().ToString(); |
|||
var identityResult = await _identityUserStore.UpdateAsync(user); |
|||
|
|||
identityResult.Succeeded.ShouldBeFalse(); |
|||
identityResult.Errors.ShouldContain(x => |
|||
x.Code == nameof(IdentityErrorDescriber.ConcurrencyFailure)); |
|||
|
|||
// && x.Description == Resources.PasswordMismatch);
|
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task DeleteAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.DeleteAsync(user)).Succeeded.ShouldBeTrue(); |
|||
|
|||
(await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash"))).ShouldBeNull(); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task FindByIdAsync() |
|||
{ |
|||
var user = await _identityUserStore.FindByIdAsync(_testData.UserJohnId.ToString()); |
|||
|
|||
user.ShouldNotBeNull(); |
|||
user.UserName.ShouldBe("john.nash"); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task FindByNameAsync() |
|||
{ |
|||
var user = await _identityUserStore.FindByNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
|
|||
user.ShouldNotBeNull(); |
|||
user.UserName.ShouldBe("john.nash"); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task SetPasswordHashAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
user.PasswordHash.ShouldBeNull(); |
|||
|
|||
await _identityUserStore.SetPasswordHashAsync(user, "P@ssw0rd"); |
|||
user.PasswordHash.ShouldBe("P@ssw0rd"); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task GetPasswordHashAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
await _identityUserStore.SetPasswordHashAsync(user, "P@ssw0rd"); |
|||
|
|||
(await _identityUserStore.GetPasswordHashAsync(user)).ShouldBe("P@ssw0rd"); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task HasPasswordAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
(await _identityUserStore.HasPasswordAsync(user)).ShouldBeFalse(); |
|||
|
|||
await _identityUserStore.SetPasswordHashAsync(user, "P@ssw0rd"); |
|||
(await _identityUserStore.HasPasswordAsync(user)).ShouldBeTrue(); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task AddToRoleAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("david")); |
|||
user.ShouldNotBeNull(); |
|||
user.Roles.ShouldBeEmpty(); |
|||
|
|||
await _identityUserStore.AddToRoleAsync(user, _lookupNormalizer.Normalize("moderator")); |
|||
|
|||
user.Roles.ShouldContain(x => x.RoleId == _testData.RoleModeratorId); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task RemoveFromRoleAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
user.Roles.ShouldContain(x => x.RoleId == _testData.RoleModeratorId); |
|||
|
|||
await _identityUserStore.RemoveFromRoleAsync(user, _lookupNormalizer.Normalize("moderator")); |
|||
|
|||
user.Roles.ShouldNotContain(x => x.RoleId == _testData.RoleModeratorId); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task GetRolesAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
var roleNames = await _identityUserStore.GetRolesAsync(user); |
|||
roleNames.ShouldNotBeEmpty(); |
|||
roleNames.ShouldContain(x => x == "moderator"); |
|||
roleNames.ShouldContain(x => x == "supporter"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task IsInRoleAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.IsInRoleAsync(user, _lookupNormalizer.Normalize("moderator"))).ShouldBeTrue(); |
|||
(await _identityUserStore.IsInRoleAsync(user, _lookupNormalizer.Normalize("moderatorNotExist"))).ShouldBeFalse(); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task GetClaimsAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
var claims = await _identityUserStore.GetClaimsAsync(user); |
|||
claims.ShouldNotBeEmpty(); |
|||
claims.ShouldContain(x => x.Type == "TestClaimType" && x.Value == "42"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task AddClaimsAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.AddClaimsAsync(user, new List<Claim>() |
|||
{ |
|||
new Claim("MyClaimType", "MyClaimValue") |
|||
}); |
|||
|
|||
user.Claims.ShouldContain(x => x.ClaimType == "MyClaimType" && x.ClaimValue == "MyClaimValue"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task ReplaceClaimAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.ReplaceClaimAsync(user, new Claim("TestClaimType", "42"), new Claim("MyClaimType", "MyClaimValue")); |
|||
|
|||
user.Claims.ShouldNotContain(x => x.ClaimType == "TestClaimType" && x.ClaimValue == "42"); |
|||
user.Claims.ShouldContain(x => x.ClaimType == "MyClaimType" && x.ClaimValue == "MyClaimValue"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task RemoveClaimsAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.RemoveClaimsAsync(user, new List<Claim>() |
|||
{ |
|||
new Claim("TestClaimType", "42") |
|||
}); |
|||
|
|||
user.Claims.ShouldNotContain(x => x.ClaimType == "TestClaimType" && x.ClaimValue == "42"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task AddLoginAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
user.Logins.ShouldNotContain(x => x.LoginProvider == "facebook" && x.ProviderKey == "john"); |
|||
|
|||
await _identityUserStore.AddLoginAsync(user, new UserLoginInfo("facebook", "john", "John Nash")); |
|||
|
|||
user.Logins.ShouldContain(x => x.LoginProvider == "facebook" && x.ProviderKey == "john"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task RemoveLoginAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
user.Logins.ShouldContain(x => x.LoginProvider == "github" && x.ProviderKey == "john"); |
|||
|
|||
await _identityUserStore.RemoveLoginAsync(user, "github", "john"); |
|||
|
|||
user.Logins.ShouldNotContain(x => x.LoginProvider == "github" && x.ProviderKey == "john"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task GetLoginsAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
var logins = await _identityUserStore.GetLoginsAsync(user); |
|||
|
|||
logins.ShouldNotBeNull(); |
|||
logins.ShouldContain(x => x.LoginProvider == "github" && x.ProviderKey == "john"); |
|||
logins.ShouldContain(x => x.LoginProvider == "twitter" && x.ProviderKey == "johnx"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task FindByLoginAsync() |
|||
{ |
|||
var user = await _identityUserStore.FindByLoginAsync("github", "john"); |
|||
user.ShouldNotBeNull(); |
|||
user.UserName.ShouldBe("john.nash"); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task GetEmailConfirmedAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetEmailConfirmedAsync(user)).ShouldBe(user.EmailConfirmed); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task SetEmailConfirmedAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
var emailConfirmed = user.EmailConfirmed; |
|||
|
|||
await _identityUserStore.SetEmailConfirmedAsync(user, !emailConfirmed); |
|||
|
|||
user.EmailConfirmed.ShouldBe(!emailConfirmed); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task SetEmailAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.SetEmailAsync(user, "john.nash.kobe@abp.io"); |
|||
|
|||
user.Email.ShouldBe("john.nash.kobe@abp.io"); |
|||
//user.NormalizedEmail.ShouldBe(_lookupNormalizer.Normalize("john.nash.kobe@abp.io"));
|
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetEmailAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetEmailAsync(user)).ShouldBe(user.Email); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetNormalizedEmailAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetNormalizedEmailAsync(user)).ShouldBe(user.NormalizedEmail); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task SetNormalizedEmailAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.SetNormalizedEmailAsync(user, _lookupNormalizer.Normalize("john.nash.kobe@abp.io")); |
|||
|
|||
user.NormalizedEmail.ShouldBe(_lookupNormalizer.Normalize("john.nash.kobe@abp.io")); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task FindByEmailAsync() |
|||
{ |
|||
var user = await _identityUserStore.FindByEmailAsync(_lookupNormalizer.Normalize("john.nash@abp.io")); |
|||
|
|||
user.ShouldNotBeNull(); |
|||
user.Email.ShouldBe("john.nash@abp.io"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetLockoutEndDateAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetLockoutEndDateAsync(user)).ShouldBe(user.LockoutEnd); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task SetLockoutEndDateAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.SetLockoutEndDateAsync(user, DateTimeOffset.Parse("01/01/2019")); |
|||
|
|||
user.LockoutEnd.ShouldBe(DateTimeOffset.Parse("01/01/2019")); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task IncrementAccessFailedCountAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
var count = user.AccessFailedCount; |
|||
|
|||
await _identityUserStore.IncrementAccessFailedCountAsync(user); |
|||
|
|||
user.AccessFailedCount.ShouldBe(count + 1); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task ResetAccessFailedCountAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.ResetAccessFailedCountAsync(user); |
|||
|
|||
user.AccessFailedCount.ShouldBe(0); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetAccessFailedCountAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetAccessFailedCountAsync(user)).ShouldBe(user.AccessFailedCount); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetLockoutEnabledAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetLockoutEnabledAsync(user)).ShouldBe(user.LockoutEnabled); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task SetLockoutEnabledAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
var lockoutEnabled = user.LockoutEnabled; |
|||
|
|||
await _identityUserStore.SetLockoutEnabledAsync(user, !lockoutEnabled); |
|||
|
|||
user.LockoutEnabled.ShouldBe(!lockoutEnabled); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task SetPhoneNumberAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.SetPhoneNumberAsync(user, "13800138000"); |
|||
|
|||
user.PhoneNumber.ShouldBe("13800138000"); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task GetPhoneNumberAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetPhoneNumberAsync(user)).ShouldBe(user.PhoneNumber); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetPhoneNumberConfirmedAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetPhoneNumberConfirmedAsync(user)).ShouldBe(user.PhoneNumberConfirmed); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task SetPhoneNumberConfirmedAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
var phoneNumberConfirmed = user.PhoneNumberConfirmed; |
|||
|
|||
await _identityUserStore.SetPhoneNumberConfirmedAsync(user, !phoneNumberConfirmed); |
|||
|
|||
user.PhoneNumberConfirmed.ShouldBe(!phoneNumberConfirmed); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task SetSecurityStampAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
var securityStamp = Guid.NewGuid().ToString(); |
|||
|
|||
await _identityUserStore.SetSecurityStampAsync(user, securityStamp); |
|||
|
|||
user.SecurityStamp.ShouldBe(securityStamp); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetSecurityStampAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetSecurityStampAsync(user)).ShouldBe(user.SecurityStamp); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task SetTwoFactorEnabledAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
var twoFactorEnabled = user.TwoFactorEnabled; |
|||
|
|||
await _identityUserStore.SetTwoFactorEnabledAsync(user, !twoFactorEnabled); |
|||
|
|||
user.TwoFactorEnabled.ShouldBe(!twoFactorEnabled); |
|||
} |
|||
|
|||
|
|||
[Fact] |
|||
public async Task GetTwoFactorEnabledAsync() |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetTwoFactorEnabledAsync(user)).ShouldBe(user.TwoFactorEnabled); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetUsersForClaimAsync() |
|||
{ |
|||
var user = await _identityUserStore.GetUsersForClaimAsync(new Claim("TestClaimType", "42")); |
|||
user.ShouldNotBeNull(); |
|||
user.ShouldNotBeEmpty(); |
|||
user.ShouldContain(x => x.UserName == "john.nash"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetUsersInRoleAsync() |
|||
{ |
|||
var user = await _identityUserStore.GetUsersInRoleAsync(_lookupNormalizer.Normalize("moderator")); |
|||
user.ShouldNotBeNull(); |
|||
user.ShouldContain(x => x.UserName == "john.nash"); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task SetTokenAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.SetTokenAsync(user, "test-provider", "test-name", "123123"); |
|||
|
|||
user.Tokens.ShouldNotBeEmpty(); |
|||
user.Tokens.ShouldContain(x => x.LoginProvider == "test-provider" && x.Name == "test-name" && x.Value == "123123"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task RemoveTokenAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.RemoveTokenAsync(user, "test-provider", "test-name"); |
|||
|
|||
user.Tokens.ShouldNotContain(x => x.LoginProvider == "test-provider" && x.Name == "test-name" && x.Value == "123123"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetTokenAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
(await _identityUserStore.GetTokenAsync(user, "test-provider", "test-name")).ShouldBe("test-value"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task SetAuthenticatorKeyAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.SetAuthenticatorKeyAsync(user, "testKey"); |
|||
|
|||
user.Tokens.ShouldContain(x => x.LoginProvider == "[AspNetUserStore]" && x.Name == "AuthenticatorKey" && x.Value == "testKey"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetAuthenticatorKeyAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
await _identityUserStore.SetAuthenticatorKeyAsync(user, "testKey"); |
|||
|
|||
(await _identityUserStore.GetAuthenticatorKeyAsync(user)).ShouldBe("testKey"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
|
|||
} |
|||
|
|||
[Fact] |
|||
public async Task CountCodesAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
await _identityUserStore.SetTokenAsync(user, "[AspNetUserStore]", "RecoveryCodes", "testKey;testKey2"); |
|||
|
|||
(await _identityUserStore.CountCodesAsync(user)).ShouldBe(2); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task ReplaceCodesAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
|
|||
await _identityUserStore.ReplaceCodesAsync(user, new List<string>() |
|||
{ |
|||
"testKey", |
|||
"testKey2" |
|||
}); |
|||
|
|||
user.Tokens.ShouldContain(x => x.LoginProvider == "[AspNetUserStore]" && x.Name == "RecoveryCodes" && x.Value == "testKey;testKey2"); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task RedeemCodeAsync() |
|||
{ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); |
|||
user.ShouldNotBeNull(); |
|||
await _identityUserStore.SetTokenAsync(user, "[AspNetUserStore]", "RecoveryCodes", "testKey;testKey2"); |
|||
|
|||
(await _identityUserStore.RedeemCodeAsync(user, "testKey")).ShouldBeTrue(); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,30 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Shouldly; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.Identity |
|||
{ |
|||
public class UserRoleFinder_Tests : AbpIdentityDomainTestBase |
|||
{ |
|||
private readonly IUserRoleFinder _userRoleFinder; |
|||
private readonly IdentityTestData _testData; |
|||
|
|||
public UserRoleFinder_Tests() |
|||
{ |
|||
_userRoleFinder = GetRequiredService<IUserRoleFinder>(); |
|||
_testData = GetRequiredService<IdentityTestData>(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task GetRolesAsync() |
|||
{ |
|||
var roleNames = await _userRoleFinder.GetRolesAsync(_testData.UserJohnId); |
|||
roleNames.ShouldNotBeEmpty(); |
|||
roleNames.ShouldContain(x => x == "moderator"); |
|||
roleNames.ShouldContain(x => x == "supporter"); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue