From 61d5639d086051ca47572669e511f09433bf1f42 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 10 Aug 2021 18:09:01 +0800 Subject: [PATCH] Add unit tests --- .../PermissionManagementProvider.cs | 10 ++---- .../PermissionManager_Tests.cs | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs index 8e17228846..178ae1f94c 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs @@ -27,15 +27,9 @@ namespace Volo.Abp.PermissionManagement public virtual async Task CheckAsync(string name, string providerName, string providerKey) { - if (providerName != Name) - { - return PermissionValueProviderGrantInfo.NonGranted; - } + var multiplePermissionValueProviderGrantInfo = await CheckAsync(new[] {name}, providerName, providerKey); - return new PermissionValueProviderGrantInfo( - await PermissionGrantRepository.FindAsync(name, providerName, providerKey) != null, - providerKey - ); + return multiplePermissionValueProviderGrantInfo.Result.First().Value; } public virtual async Task CheckAsync(string[] names, string providerName, string providerKey) diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionManager_Tests.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionManager_Tests.cs index 07d279ec9d..1a4ea721cc 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionManager_Tests.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionManager_Tests.cs @@ -40,6 +40,37 @@ namespace Volo.Abp.PermissionManagement grantedProviders.Providers.ShouldContain(x => x.Key == "Test"); } + [Fact] + public async Task Multiple_GetAsync() + { + await _permissionGrantRepository.InsertAsync(new PermissionGrant( + Guid.NewGuid(), + "MyPermission1", + "Test", + "Test") + ); + await _permissionGrantRepository.InsertAsync(new PermissionGrant( + Guid.NewGuid(), + "MyPermission2", + "Test", + "Test") + ); + + var grantedProviders = await _permissionManager.GetAsync( + new[] {"MyPermission1", "MyPermission2"}, + "Test", + "Test"); + + grantedProviders.Result.Count.ShouldBe(2); + grantedProviders.Result.First().IsGranted.ShouldBeTrue(); + grantedProviders.Result.First().Name.ShouldBe("MyPermission1"); + grantedProviders.Result.First().Providers.ShouldContain(x => x.Key == "Test"); + + grantedProviders.Result.Last().IsGranted.ShouldBeTrue(); + grantedProviders.Result.Last().Name.ShouldBe("MyPermission2"); + grantedProviders.Result.Last().Providers.ShouldContain(x => x.Key == "Test"); + } + [Fact] public async Task Get_Should_Exception_When_Permission_Undefined() {