diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserManager.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserManager.cs index 185e31a1f4..f8bfe5b603 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserManager.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserManager.cs @@ -82,7 +82,7 @@ public class IdentityUserManager : UserManager, IDomainService return await CreateAsync(user); } - + public async override Task DeleteAsync(IdentityUser user) { user.Claims.Clear(); diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityRoleRepository_Tests.cs b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityRoleRepository_Tests.cs index 33f5eeade9..ffeb1220b1 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityRoleRepository_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityRoleRepository_Tests.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.DependencyInjection; using Shouldly; using Volo.Abp.Modularity; +using Volo.Abp.Uow; using Xunit; namespace Volo.Abp.Identity; @@ -13,11 +14,17 @@ public abstract class IdentityRoleRepository_Tests : AbpIdentity { protected IIdentityRoleRepository RoleRepository { get; } protected ILookupNormalizer LookupNormalizer { get; } + protected IdentityUserManager UserManager { get; } + protected IdentityTestData TestData { get; } + protected IUnitOfWorkManager UnitOfWorkManager { get; } protected IdentityRoleRepository_Tests() { RoleRepository = ServiceProvider.GetRequiredService(); LookupNormalizer = ServiceProvider.GetRequiredService(); + UserManager = ServiceProvider.GetRequiredService(); + TestData = ServiceProvider.GetRequiredService(); + UnitOfWorkManager = ServiceProvider.GetRequiredService(); } [Fact] @@ -77,6 +84,19 @@ public abstract class IdentityRoleRepository_Tests : AbpIdentity roles.ShouldContain(r => r.Role.Name == "moderator" && r.UserCount == 1); roles.ShouldContain(r => r.Role.Name == "supporter" && r.UserCount == 2); roles.ShouldContain(r => r.Role.Name == "manager" && r.UserCount == 1); + + + using (var uow = UnitOfWorkManager.Begin()) + { + var userBob = await UserManager.FindByIdAsync(TestData.UserBobId.ToString()); + await UserManager.DeleteAsync(userBob!); + await uow.CompleteAsync(); + } + + roles = await RoleRepository.GetListWithUserCountAsync(); + + roles.Count.ShouldBe(5); + roles.ShouldContain(r => r.Role.Name == "manager" && r.UserCount == 0); roles.ShouldContain(r => r.Role.Name == "sale" && r.UserCount == 0); } }