From 9059198ee9aea3729fde2dd354748ba9b171da67 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 2 Nov 2023 14:06:18 +0800 Subject: [PATCH] Add unit tests for user/role delete event. --- .../Identity/IdentityRoleAppService_Tests.cs | 22 ++++++++++++++++++- .../Identity/IdentityUserAppService_Tests.cs | 20 +++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityRoleAppService_Tests.cs b/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityRoleAppService_Tests.cs index d9f6d17523..e413add30c 100644 --- a/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityRoleAppService_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityRoleAppService_Tests.cs @@ -4,6 +4,9 @@ using System.Threading.Tasks; using Xunit; using Shouldly; using Volo.Abp.Application.Dtos; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.PermissionManagement; +using Volo.Abp.PermissionManagement.Identity; namespace Volo.Abp.Identity; @@ -11,11 +14,14 @@ public class IdentityRoleAppService_Tests : AbpIdentityApplicationTestBase { private readonly IIdentityRoleAppService _roleAppService; private readonly IIdentityRoleRepository _roleRepository; - + private readonly IPermissionManager _permissionManager; + private readonly RolePermissionManagementProvider _rolePermissionManagementProvider; public IdentityRoleAppService_Tests() { _roleAppService = GetRequiredService(); _roleRepository = GetRequiredService(); + _permissionManager = GetRequiredService(); + _rolePermissionManagementProvider = GetRequiredService(); } [Fact] @@ -125,6 +131,20 @@ public class IdentityRoleAppService_Tests : AbpIdentityApplicationTestBase (await FindRoleAsync("moderator")).ShouldBeNull(); } + + [Fact] + public async Task Role_Permissions_Should_Deleted_If_Role_Deleted() + { + var moderator = await GetRoleAsync("moderator"); + + (await _rolePermissionManagementProvider.CheckAsync(IdentityPermissions.Users.Create, RolePermissionValueProvider.ProviderName, moderator.Name)).IsGranted.ShouldBeFalse(); + await _permissionManager.SetForRoleAsync(moderator.Name, IdentityPermissions.Users.Create, true); + (await _rolePermissionManagementProvider.CheckAsync(IdentityPermissions.Users.Create, RolePermissionValueProvider.ProviderName, moderator.Name)).IsGranted.ShouldBeTrue(); + + await _roleAppService.DeleteAsync(moderator.Id); + (await _rolePermissionManagementProvider.CheckAsync(IdentityPermissions.Users.Create, RolePermissionValueProvider.ProviderName, moderator.Name)).IsGranted.ShouldBeFalse(); + } + private async Task GetRoleAsync(string roleName) { return (await _roleRepository.GetListAsync()).First(u => u.Name == roleName); diff --git a/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityUserAppService_Tests.cs b/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityUserAppService_Tests.cs index 591cefba3c..3272929c3e 100644 --- a/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityUserAppService_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityUserAppService_Tests.cs @@ -1,7 +1,10 @@ using System; using System.Threading.Tasks; using Shouldly; +using Volo.Abp.Authorization.Permissions; using Volo.Abp.Data; +using Volo.Abp.PermissionManagement; +using Volo.Abp.PermissionManagement.Identity; using Xunit; namespace Volo.Abp.Identity; @@ -10,12 +13,16 @@ public class IdentityUserAppService_Tests : AbpIdentityApplicationTestBase { private readonly IIdentityUserAppService _userAppService; private readonly IIdentityUserRepository _userRepository; + private readonly IPermissionManager _permissionManager; + private readonly UserPermissionManagementProvider _userPermissionManagementProvider; private readonly IdentityTestData _testData; public IdentityUserAppService_Tests() { _userAppService = GetRequiredService(); _userRepository = GetRequiredService(); + _permissionManager = GetRequiredService(); + _userPermissionManagementProvider = GetRequiredService(); _testData = GetRequiredService(); } @@ -174,6 +181,19 @@ public class IdentityUserAppService_Tests : AbpIdentityApplicationTestBase FindUser("john.nash").ShouldBeNull(); } + [Fact] + public async Task User_Permissions_Should_Deleted_If_User_Deleted() + { + var johnNash = GetUser("john.nash"); + + (await _userPermissionManagementProvider.CheckAsync(IdentityPermissions.Users.Create, UserPermissionValueProvider.ProviderName, johnNash.Id.ToString())).IsGranted.ShouldBeFalse(); + await _permissionManager.SetForUserAsync(johnNash.Id, IdentityPermissions.Users.Create, true); + (await _userPermissionManagementProvider.CheckAsync(IdentityPermissions.Users.Create, UserPermissionValueProvider.ProviderName, johnNash.Id.ToString())).IsGranted.ShouldBeTrue(); + + await _userAppService.DeleteAsync(johnNash.Id); + (await _userPermissionManagementProvider.CheckAsync(IdentityPermissions.Users.Create, UserPermissionValueProvider.ProviderName, johnNash.Id.ToString())).IsGranted.ShouldBeFalse(); + } + [Fact] public async Task GetRolesAsync() {