mirror of https://github.com/abpframework/abp.git
3 changed files with 119 additions and 2 deletions
@ -0,0 +1,117 @@ |
|||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using Shouldly; |
||||
|
using Volo.Abp.Authorization.Permissions; |
||||
|
using Volo.Abp.Authorization.Permissions.Resources; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Volo.Abp.PermissionManagement; |
||||
|
|
||||
|
public class ResourcePermissionStore_Tests : PermissionTestBase |
||||
|
{ |
||||
|
private readonly IResourcePermissionStore _resourcePermissionStore; |
||||
|
|
||||
|
public ResourcePermissionStore_Tests() |
||||
|
{ |
||||
|
_resourcePermissionStore = GetRequiredService<IResourcePermissionStore>(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task IsGrantedAsync() |
||||
|
{ |
||||
|
(await _resourcePermissionStore.IsGrantedAsync( |
||||
|
"MyResourcePermission1", |
||||
|
TestEntityResource.ResourceName, |
||||
|
TestEntityResource.ResourceKey1, |
||||
|
UserPermissionValueProvider.ProviderName, |
||||
|
PermissionTestDataBuilder.User1Id.ToString())).ShouldBeTrue(); |
||||
|
|
||||
|
(await _resourcePermissionStore.IsGrantedAsync( |
||||
|
"MyPermission1NotExist", |
||||
|
TestEntityResource.ResourceName, |
||||
|
TestEntityResource.ResourceKey1, |
||||
|
UserPermissionValueProvider.ProviderName, |
||||
|
PermissionTestDataBuilder.User1Id.ToString())).ShouldBeFalse(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task IsGranted_Multiple() |
||||
|
{ |
||||
|
var result = await _resourcePermissionStore.IsGrantedAsync( |
||||
|
new[] { "MyResourcePermission1", "MyResourcePermission1NotExist" }, |
||||
|
TestEntityResource.ResourceName, |
||||
|
TestEntityResource.ResourceKey1, |
||||
|
UserPermissionValueProvider.ProviderName, |
||||
|
PermissionTestDataBuilder.User1Id.ToString()); |
||||
|
|
||||
|
result.Result.Count.ShouldBe(2); |
||||
|
|
||||
|
result.Result.FirstOrDefault(x => x.Key == "MyResourcePermission1").Value.ShouldBe(PermissionGrantResult.Granted); |
||||
|
result.Result.FirstOrDefault(x => x.Key == "MyResourcePermission1NotExist").Value.ShouldBe(PermissionGrantResult.Undefined); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetPermissionsAsync() |
||||
|
{ |
||||
|
var permissions = await _resourcePermissionStore.GetPermissionsAsync( |
||||
|
TestEntityResource.ResourceName, |
||||
|
TestEntityResource.ResourceKey1); |
||||
|
|
||||
|
permissions.Result.Count.ShouldBe(10); |
||||
|
permissions.Result.ShouldContain(p => p.Key == "MyResourcePermission1" && p.Value == PermissionGrantResult.Granted); |
||||
|
permissions.Result.ShouldContain(p => p.Key == "MyResourceDisabledPermission1" && p.Value == PermissionGrantResult.Undefined); |
||||
|
permissions.Result.ShouldContain(p => p.Key == "MyResourcePermission2" && p.Value == PermissionGrantResult.Undefined); |
||||
|
permissions.Result.ShouldContain(p => p.Key == "MyResourcePermission3" && p.Value == PermissionGrantResult.Undefined); |
||||
|
permissions.Result.ShouldContain(p => p.Key == "MyResourcePermission4" && p.Value == PermissionGrantResult.Undefined); |
||||
|
permissions.Result.ShouldContain(p => p.Key == "MyResourcePermission5" && p.Value == PermissionGrantResult.Undefined); |
||||
|
permissions.Result.ShouldContain(p => p.Key == "MyResourcePermission6" && p.Value == PermissionGrantResult.Undefined); |
||||
|
permissions.Result.ShouldContain(p => p.Key == "MyResourceDisabledPermission2" && p.Value == PermissionGrantResult.Undefined); |
||||
|
permissions.Result.ShouldContain(p => p.Key == "MyResourcePermission7" && p.Value == PermissionGrantResult.Undefined); |
||||
|
permissions.Result.ShouldContain(p => p.Key == "MyResourcePermission8" && p.Value == PermissionGrantResult.Undefined); |
||||
|
|
||||
|
permissions = await _resourcePermissionStore.GetPermissionsAsync( |
||||
|
TestEntityResource.ResourceName, |
||||
|
TestEntityResource.ResourceKey2); |
||||
|
permissions.Result.ShouldAllBe(x => x.Value == PermissionGrantResult.Undefined); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetGrantedPermissionsAsync() |
||||
|
{ |
||||
|
var grantedPermissions = await _resourcePermissionStore.GetGrantedPermissionsAsync( |
||||
|
TestEntityResource.ResourceName, |
||||
|
TestEntityResource.ResourceKey1); |
||||
|
|
||||
|
grantedPermissions.Length.ShouldBe(1); |
||||
|
grantedPermissions.ShouldContain("MyResourcePermission1"); |
||||
|
|
||||
|
grantedPermissions = await _resourcePermissionStore.GetGrantedPermissionsAsync( |
||||
|
TestEntityResource.ResourceName, |
||||
|
TestEntityResource.ResourceKey3); |
||||
|
|
||||
|
grantedPermissions.Length.ShouldBe(2); |
||||
|
grantedPermissions.ShouldContain("MyResourcePermission3"); |
||||
|
grantedPermissions.ShouldContain("MyResourcePermission5"); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetGrantedResourceKeysAsync() |
||||
|
{ |
||||
|
var grantedResourceKeys = await _resourcePermissionStore.GetGrantedResourceKeysAsync( |
||||
|
TestEntityResource.ResourceName, |
||||
|
"MyResourcePermission1"); |
||||
|
|
||||
|
grantedResourceKeys.Length.ShouldBe(1); |
||||
|
grantedResourceKeys.ShouldContain(TestEntityResource.ResourceKey1); |
||||
|
|
||||
|
grantedResourceKeys = await _resourcePermissionStore.GetGrantedResourceKeysAsync( |
||||
|
TestEntityResource.ResourceName, |
||||
|
"MyResourcePermission5"); |
||||
|
|
||||
|
grantedResourceKeys.Length.ShouldBe(2); |
||||
|
grantedResourceKeys.ShouldContain(TestEntityResource.ResourceKey3); |
||||
|
grantedResourceKeys.ShouldContain(TestEntityResource.ResourceKey5); |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue