Browse Source

Add tests for ResourcePermissionGrant cache behavior

pull/24374/head
maliming 6 months ago
parent
commit
5bb3ac057c
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 69
      modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/ResourcePermissionGrantCacheItemInvalidator_Tests.cs
  2. 15
      modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/ResourcePermissionGrantCacheItem_Tests.cs

69
modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/ResourcePermissionGrantCacheItemInvalidator_Tests.cs

@ -0,0 +1,69 @@
using System.Threading.Tasks;
using Shouldly;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Authorization.Permissions.Resources;
using Volo.Abp.Caching;
using Xunit;
namespace Volo.Abp.PermissionManagement;
public class ResourcePermissionGrantCacheItemInvalidator_Tests : PermissionTestBase
{
private readonly IDistributedCache<ResourcePermissionGrantCacheItem> _cache;
private readonly IResourcePermissionStore _resourcePermissionStore;
private readonly IResourcePermissionGrantRepository _resourcePermissionGrantRepository;
public ResourcePermissionGrantCacheItemInvalidator_Tests()
{
_cache = GetRequiredService<IDistributedCache<ResourcePermissionGrantCacheItem>>();
_resourcePermissionStore = GetRequiredService<IResourcePermissionStore>();
_resourcePermissionGrantRepository = GetRequiredService<IResourcePermissionGrantRepository>();
}
[Fact]
public async Task PermissionStore_IsGrantedAsync_Should_Cache_PermissionGrant()
{
(await _cache.GetAsync(ResourcePermissionGrantCacheItem.CalculateCacheKey("MyResourcePermission1",
TestEntityResource.ResourceName,
TestEntityResource.ResourceKey1,
UserPermissionValueProvider.ProviderName,
PermissionTestDataBuilder.User1Id.ToString()))).ShouldBeNull();
await _resourcePermissionStore.IsGrantedAsync("MyResourcePermission1",
TestEntityResource.ResourceName,
TestEntityResource.ResourceKey1,
UserPermissionValueProvider.ProviderName,
PermissionTestDataBuilder.User1Id.ToString());
(await _cache.GetAsync(ResourcePermissionGrantCacheItem.CalculateCacheKey("MyResourcePermission1",
TestEntityResource.ResourceName,
TestEntityResource.ResourceKey1,
UserPermissionValueProvider.ProviderName,
PermissionTestDataBuilder.User1Id.ToString()))).ShouldNotBeNull();
}
[Fact]
public async Task Cache_Should_Invalidator_WhenPermissionGrantChanged()
{
// IsGrantedAsync will cache ResourcePermissionGrant
await _resourcePermissionStore.IsGrantedAsync("MyResourcePermission1",
TestEntityResource.ResourceName,
TestEntityResource.ResourceKey1,
UserPermissionValueProvider.ProviderName,
PermissionTestDataBuilder.User1Id.ToString());
var resourcePermissionGrant = await _resourcePermissionGrantRepository.FindAsync("MyResourcePermission1",
TestEntityResource.ResourceName,
TestEntityResource.ResourceKey1,
UserPermissionValueProvider.ProviderName,
PermissionTestDataBuilder.User1Id.ToString());
resourcePermissionGrant.ShouldNotBeNull();
await _resourcePermissionGrantRepository.DeleteAsync(permissionGrant);
(await _cache.GetAsync(ResourcePermissionGrantCacheItem.CalculateCacheKey("MyResourcePermission1",
TestEntityResource.ResourceName,
TestEntityResource.ResourceKey1,
UserPermissionValueProvider.ProviderName,
PermissionTestDataBuilder.User1Id.ToString()))).ShouldBeNull();
}
}

15
modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/ResourcePermissionGrantCacheItem_Tests.cs

@ -0,0 +1,15 @@
using Shouldly;
using Xunit;
namespace Volo.Abp.PermissionManagement;
public class ResourcePermissionGrantCacheItem_Tests
{
[Fact]
public void GetPermissionNameFormCacheKeyOrNull()
{
var key = ResourcePermissionGrantCacheItem.CalculateCacheKey("aaa", TestEntityResource.ResourceName, TestEntityResource.ResourceKey1,"bbb", "ccc");
ResourcePermissionGrantCacheItem.GetPermissionNameFormCacheKeyOrNull(key).ShouldBe("aaa");
ResourcePermissionGrantCacheItem.GetPermissionNameFormCacheKeyOrNull("aaabbbccc").ShouldBeNull();
}
}
Loading…
Cancel
Save